利用定时器捕获/比较模块的比较模式产生方波:捕获比较模块1产生20HZ的方波,并由p3.2输出。
void main ()
{
WDTCTL=WDTPW+WDTHOLD;
TACTL=TASSEL_2+ID_3+MC_2+TACLR;//MCLK八分频后100khz,连续计数模式,计数器清零
CCTL1=CCIE; CCR1=10000;
P3DIR=0XFF; P3OUT=0X00;
_EINT();
for(;;);
}
#pragma vector=TIMERA1_VECTOR
__interrupt void TIMER_A();
{
switch(TAIV)
{
case 2:P3OUT^=0x04;
CCR1+=10000;
break;
case 4:break;
case 10:P3OUT^=0x02;
break;
}
}
以上的程序中有一个疑问是:TAR 16位计数器当计满FFFFH时,会置零重新计数,那当CCR1<FFFFh,CCR1+10000>FFFFh时,CCR1=CCR1+10000-FFFF?还是CCR1继续叠加?如果继续叠加,怎样进行比较?求大神解答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>