up计数模式
循环的从0记到TACCR0
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P2DIR |= BIT4; ; // P1.0 output
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 20000;
TACTL = TASSEL_2 + MC_1; // SMCLK, upmode
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
#if defined(TI_COMPILER_VERSION) || defined(IAR_SYSTEMS_ICC)
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
P2OUT ^= BIT4;
}
分析:
#pragma vector=TIMER0_A0_VECTOR //表示给这个向量表中的外部端口中断所对应的地址进行赋值,并赋值为函数void Timer_A(void)的首地址。
关键字__interrupt则表示这个函数是中断服务函数这种特殊函数。
//在中断函数里面可以看出,不用在中断函数中重新设置CCR0.
计算应该会产生=1/(1/1000000 * 20000 * 2) = 25hz的脉冲。
对的,是没问题的。
///问题如果使用连续计数,在中断函数中不加CCR0 .会产生多少HZ呢?