关于定时扫描键盘

2019-07-24 18:34发布

本帖最后由 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
  }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。