打印

关于定时扫描键盘

[复制链接]
767|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
309030|  楼主 | 2015-12-22 22:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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
  }
}

相关帖子

沙发
1988020566| | 2015-12-22 22:26 | 只看该作者
你怎么知道出不来

使用特权

评论回复
板凳
lihuami| | 2015-12-22 22:46 | 只看该作者
查看配置寄存器对不对。

使用特权

评论回复
地板
bairurui0713| | 2015-12-23 09:31 | 只看该作者
大哥,你没有清除中断标志

使用特权

评论回复
5
309030|  楼主 | 2015-12-24 10:53 | 只看该作者
大哥,你没有清除中断标志

中断标志是自动清除的
问题已搞定,感谢回复

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

638

帖子

0

粉丝