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.

msp430g2452

Other Parts Discussed in Thread: MSP430G2452

我的程序要用两个定时器,一个给按键做定时,另一个给电子钟做定时,这款单片机,我看那个使用手册上只有一个定时器Time_A,有人能提个解决方案吗

  • 可以用定时器+一个计数变量来解决。

    定时器定时时间选按键和电子钟需求时间的最大公约数。

  • jiayuan song,

    如另一个帖子回复,本身MSP430G2452 Timer-A是有3路configurable capture/compare registers的。但是由于一个Timer_A只有一个时钟源输入,且只有一16−bitTimer TAR, 故最长定时时间是由时钟源的选择*0xFFFF决定的。如果你的两个定时时间相差太大时,就不能用Timer 本身的CCR0, CCR1, CCR2来做简单的定时了。

    例如,Timer时钟源选择了1MHz, 且没有分频,则此时最长定时为1us*65536 = 65.536ms, 最短为1us

    Timer时钟源选择了32768Hz, 且没有分频,则此时最长定时为2s, 最短为1/32768Hz.

    但一般不建议和最短时间太接近,太频繁进入中断,考虑到中断处理时间,入中断,出中断时间,肯定不准的。

    你需要根据你需要的定时时间和功耗要求,合理选择时钟源的大小。

    如果两个定时不大,在选择时钟源可以设置范围内,则可以使用CCR0, CCR1来设置不同定时中断。但如果相差太大,则需要在定时外加自己计数来实现。