工具/软件:TI C/C++编译器
你(们)好
我想通过 PWM 读取风扇转速
我的 MSP430只有引脚 P2.4/TA2.1 (FAN_SPED_R)作为输入、如下所示
我想知道如何从引脚获取风扇信息
非常感谢您的参与。
此致
Ken
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
你(们)好
我想通过 PWM 读取风扇转速
我的 MSP430只有引脚 P2.4/TA2.1 (FAN_SPED_R)作为输入、如下所示
我想知道如何从引脚获取风扇信息
非常感谢您的参与。
此致
Ken
什么类型的信号是 FAN_SPED_R? 是每转一次节拍还是高频 PWM 驱动器?
每转一次的速度非常慢(最多几个100Hz)、因此最好使用计时器捕捉(TA2.1=TIMERTA2、寄存器 CCR1)并从连续边沿中减去捕捉值。 [参考用户指南(SLAU208Q)第17.2.4.1节]
我在 Resource Explorer 中看不到任何捕获示例、但您可能可以使用一些 timer-A 框架:
https://dev.ti.com/tirex/explore/node?node=AEC6YEnWUPrjclYUKg9ntw__IOGqZri__LATEST
TA2CCTL1 = CM_1 + CCIS_0 + SCS + CAP;//上升模式下的捕捉、CCI2A 输入、同步捕捉、捕捉模式 TA2CTL = tassel_2 + MC_0;//SMCLK、计时器停止 #pragma vector=TIMER2_A1_vector _中断 void TIMER2_A1_0;// tSIR_14 (void = void)(void = void = void = tage_sr)、void (void)(en_14);(void = void = void = void = void = void //无中断 情况2: new_cap = TA2CCR1; cap_diff = new_cap - old_cap; old_cap = new_cap; if (max_cap < cap_diff){ max_cap = cap_diff; } if (min_cap > cap_diff){ min_cap = cap_diff; } TA2CTL = tcap = tce_diff; ~ _ tcc2 = tag1 + tcc1 (tc1 + tag1);tc1 = tcc1 = tag1 + tag1 ( // CCR1 案例4: 中断; // CCR2 案例6: 中断; //保留 大小写8: 中断; //保留 大小写10: 中断; //保留 情况12: 中断; //保留 大小写14: break; //溢出 默认值: break; }
我每2秒启用一次 TA2CCTL1
在调试过程中、CAP_DIFF 的值为200 ~ 218
有人能告诉我如何将值转换为风扇转速?