工具/软件:Code Composer Studio
计时器每1秒就会进入中断状态、计数器将增加1。
在这种情况下、计数器的值应在1分钟内为60。 在秒表的帮助下、我测量了1分钟并停止了程序。 计数器的值为54。 未发生敏感1秒。
/***我在方案中创造了1秒钟,如下所示
我使用了 ACLK 模块。 其频率为12000Hz。 本例中的周期为1/12000秒。
如果我将1/12000秒乘以12000、我将得到1秒。 一切都在这里。
(我不确定之后)。 我继续。 如果我将 TA0CCR0设置为12000、我将得到1秒。
1秒=(1/12000)*TA0CCR0=(1/12000)*12000
如果这是错误的、我应该使用哪个公式来确定 CCR0值?
#include /*每1秒计数器++*/ 无符号 int 计数器=0; int main (void) { WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器 /***设置 ACLK --> 12kHz=12000hz ***/ BCSCTL1 &=~XTS; //设置 ACLK BCSCTL3 &&~LFXT1S0; BCSCTL3 |= LFXT1S1; /*** TA0设置***/ TA0CTL |= MC_1 + tassel_1+TAIE;//up 模式(最高达 TA0CCR0)-源选择 ACLK /*** 1秒设置 时间***/ 1/12000。 * *(1/12000).TA0CCR0=(1/12000)* 12000=1 (1秒)所以、TA0CCR0值必须为12000*/ TA0CCR0=12000; _ bis_SR_register (LPM3_bits + GIE);//只有 ACLK 可用-常规 intervert 激活 }#tace_funicon= t0a1 (tace0_vector = tager0)(tace0_vector (tace0_vector)= tace0_vector (void) //CCR1不使用 情况4:中断; //CCR2非用 例10: //溢出- counter++ COUNTER++; 中断; } }