本帖最后由 309030 于 2015-12-22 22:09 编辑
单片机是F235,想用定时器定时扫描键盘,也就是在定时中断里做个标志,中断到来标志置位,在主函数里对该标志做判断,再进行键盘扫描,不要时刻扫描。
但是我的定时器进入中断后出不来了,死在 flag_scan=1; 为什么,哪的原因?
//定时器A 初始化
void TimeA_Init(void)
{
TACCR0 = 50000; //定时50ms
TACTL = TASSEL_2 + ID_3 + MC_1 + TAIE; //定时器A 时钟为SMCLK,时钟8分频,增计数模式
TACCTL0 |= CCIE; //定时器模式为比较模式,使能比较中断
}
//定时器A 中断
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)//
{
flag_scan=1;//0xff
}
//*****************************************
// 主函数
//*****************************************
int main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop Watchdog Timer
Port_init();
CLK_init();
delay_ms(100);
TimeA_Init();
_EINT();
while(1)
{
if(flag_scan == 1)
{
flag_scan = 0;
Key_Scan();
display();//根据键值做出相应显示
_NOP();
}
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
}
|