请问:定时器中增计数模式和连续计数模式有什么区别吗?难道就是增计数模式能计数到CCR0,而连续计数模式只能计数到65536?如果是这样,那在连续计数模式下就不用设置CCR0的值了,但我看到例程中,仍然设置了CCR0,不解,请指教。
#include <msp430x14x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3DIR |= BIT4; // P3.4 output
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 50000;
TACTL = TASSEL_2 + MC_2; // SMCLK, contmode
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P3OUT ^= BIT4; // Toggle P3.4
CCR0 += 50000; // Add Offset to CCR0
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
在连续模式,他就象闹表一样,而ccr0就象您定时的闹钟,每次到达ccr0,就会产生一个事件。
哦
连续模式,计时器是要计满的,但是在计到CCRx时,产生中断;
而增计数模式,不需要计满,只要到CCRx,就会产生中断;
两者计数形式不一样,但最终效果是一样的,对吧?
令问:我看到有的程序里会这样设置CCR0=1000-1,这样写是什么意思?1000-1跟1000区别不大啊
你可以把它看做闹钟和定时炸弹的区别,闹钟响了,它还会继续走;但定时炸弹到时直接炸了,时钟不会在继续走。
一个是循环事件,一个是单次事件。
您说的那个1000-1,这个要看写程序的人的思路了。
增计数是单次事件吗?在430一本教材上有这样一句话——计数器TAR可以增计数到CCR0的值,当计数到与CCR0的值相等时,定时器复位并从0开始重新计数。
从其他例程中也看到应用增计数模式的,应该不是单次事件。
抱歉,这个是我理解错误,看成单次增计数模式了:(
在连续计数模式中,很多时候会用到CCR0、CCR1等信号,闹钟的例子最形象了,在周期循环定时中,CCR0、CCR1对应不同时刻的事件。这就是430定时器最大的特点,在一个循环中可以产生多个不同的定时事件。
一周热门 更多>