TI中文支持网
TI专业的中文技术问题搜集分享网站

问一个 计算的问题, 有谁能实现 用一个定时器 输出 5路 200-1000 ,占空50%的频率吗,

我现在用MSP430F4270芯片, 把电路板焊好后, 一直没解决这个问题, 电路板的功能是 485通讯,读取5个数值,然后,把5路数据值 换成200-1000HZ的 频率 输出到5个IO口, 

现在能做到 用TIMA3 CCR0 这个定时器 485通讯,TIMA3 CCR2能输出 5路同样的频率,但做不到输出5路不同的值。  费了好多脑子 都实现不了 ,是不是 该放弃 换成5个定时器 来实现呢

user1640487:

回复 灰小子:

是挺难的, 如果 这个芯片内在大一点还可以 ,我 先用主程序计算 出5个频率如 200 201 430 999 875 (HZ), 然后 计算出 这5个频率 用一个定时器 要产生的间隔,每次间隔 翻转一位, 然后,用程序 计算出 50MS内,5种频率将分别 产生的 20 20 43 100 87 一共270次中断点,把这127次点TACR2值记录在一个 数组里面,每次中断用一个,这样中断就只要取数,翻转就可以了,用完270个前主程序 再循环给, 这样就能产生5路频率, 但这个芯片只有256字节的内存 实在不够。

user1640487:

回复 灰小子:

MSP430芯片有FLASH ROM ,为什么 好多人还要外扩 EEPROM  

灰小子:

回复 user1640487:

没必要用外置eeprom,很多都是老思维,从原来方案照搬来的。

当然,也有可能和具体的应用环境有关。

Lichen Wang:

回复 user1640487:

gaofeng zhu1…每次间隔 翻转一位…

如果你需要的多個不同的間隔的最大公約數夠大的話, 就很容易做到.

以 8 MHz 的 Clock 為例. 產生 200, 400, 800, 及 1000 Hz 需要的間隔是 20000, 10000, 5000, 及 4000. 它們的最大公約數是 1000, 所以很容易同時產生. 而產生600 Hz需要的間隔是 1333, 和上述的間隔的最大公約數是 1 , 所以不易同時產生.

user1640487:

回复 Lichen Wang:

我已经 实现了,不用换单片机  OHYE

赞(0)
未经允许不得转载:TI中文支持网 » 问一个 计算的问题, 有谁能实现 用一个定时器 输出 5路 200-1000 ,占空50%的频率吗,
分享到: 更多 (0)