同学送我块emulation msp430g2 launchpad
我想了解下定时器中断的原理 是这样写的
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
P1DIR|=BIT0+BIT6;//P1.0 led
TACTL|=TASSEL_1+ID_2+MC_1;//32.768kHz,0分频,增计数
TACCR0=16384;
TACCTL0 = CCIE;//使能CCIFG
_EINT();//开总中断
while(1)
{
P1DIR^=BIT6;
_delay_cycles(500000);
}
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TimerA(void)
{
P1DIR^=BIT0;
}
在CCS中debug 看到两个灯以不同频率闪烁,以为是写对了
关掉调试后却只有P1.6处的led闪烁
P1DIR^=BIT6; 改变输出口方向干嘛呢?是不是 P1OUT^=BIT6 和 P1OUT^=BIT0 ???另外你的1.6处的灯怎么亮的表示奇怪....
人有的时候真是奇怪,选择了会后悔,放弃了会遗憾,完美只能是一种理想,不是一种存在。
我继续换参数来测试 发现用“辅助主时钟”(TASSEL_2)不会出现上述情况
至于为什么ACLK不行
书上提到其参与在低功耗状态下唤醒CPU,不知是不是这方面的原因
期待大牛给解释
while(1)
{
P1DIR^=BIT6;//P1OUT
_delay_cycles(500000);
}
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TimerA(void)
{
P1DIR^=BIT0;//P1OUT
}