|
楼主 |
发表于 2014-1-16 18:14:33
|
显示全部楼层
我使用了volatile 之后还是一样。传不出去。。。我又把程序改成这样了,更直观。结果就是跑不到最下面去。
#include <msp430g2553.h>
unsigned char i;
void main()
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
if((CALBC1_1MHZ==0xff)||(CALDCO_1MHZ==0xff)) //切换DCO频率
while(1);
else
{
DCOCTL = CALDCO_1MHZ;
BCSCTL1= CALBC1_1MHZ;
}
i=0;
TACTL = TASSEL_2 + TAIE + MC_1; //SMCLK
CCR0 = 50000;
CCTL0 = CCIE;
P1DIR |= BIT0;
_EINT();
//LPM0;
while(i!=20);
while(1);
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void ctimer_A0(void)
{
i++;
}
他根本就没法跑到最后。debug 下载之后点GO, 等个几十秒stop了看还是 i=0。在定时器里面设一个break, 然后点go, 就发现i 会累加,然后再突然某次随机的go之后就又清零了(一般不会累加过10,go几次就清零了)。神啊。我这是在和谁玩啊。 |
|