我现在用MSP430F4270芯片, 把电路板焊好后, 一直没解决这个问题, 电路板的功能是 485通讯,读取5个数值,然后,把5路数据值 换成200-1000HZ的 频率 输出到5个IO口,
现在能做到 用TIMA3 CCR0 这个定时器 485通讯,TIMA3 CCR2能输出 5路同样的频率,但做不到输出5路不同的值。 费了好多脑子 都实现不了 ,是不是 该放弃 换成5个定时器 来实现呢
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.
我现在用MSP430F4270芯片, 把电路板焊好后, 一直没解决这个问题, 电路板的功能是 485通讯,读取5个数值,然后,把5路数据值 换成200-1000HZ的 频率 输出到5个IO口,
现在能做到 用TIMA3 CCR0 这个定时器 485通讯,TIMA3 CCR2能输出 5路同样的频率,但做不到输出5路不同的值。 费了好多脑子 都实现不了 ,是不是 该放弃 换成5个定时器 来实现呢
是挺难的, 如果 这个芯片内在大一点还可以 ,我 先用主程序计算 出5个频率如 200 201 430 999 875 (HZ), 然后 计算出 这5个频率 用一个定时器 要产生的间隔,每次间隔 翻转一位, 然后,用程序 计算出 50MS内,5种频率将分别 产生的 20 20 43 100 87 一共270次中断点,把这127次点TACR2值记录在一个 数组里面,每次中断用一个,这样中断就只要取数,翻转就可以了,用完270个前主程序 再循环给, 这样就能产生5路频率, 但这个芯片只有256字节的内存 实在不够。
gaofeng zhu1 说:...每次间隔 翻转一位...
如果你需要的多個不同的間隔的最大公約數夠大的話, 就很容易做到.
以 8 MHz 的 Clock 為例. 產生 200, 400, 800, 及 1000 Hz 需要的間隔是 20000, 10000, 5000, 及 4000. 它們的最大公約數是 1000, 所以很容易同時產生. 而產生600 Hz需要的間隔是 1333, 和上述的間隔的最大公約數是 1 , 所以不易同時產生.