按键检测。。。由于自己的疏忽非常郁闷。。。

在写按键检测的程序时,由于未将s_count = 0设为静态变量,导致程序一直不进行检测按键的操作,费了好长时间。。。。最后是单步调试是发现的。。。单步调试时断点的设置很重要。。。

void SysTick_ISR(void)
{
 uint8_t i ;
 static uint8_t s_count = 0;  //此变量必须为静态变量。。。否则永远不执行按键检测的操作

 for(i = 0 ; i < TIME_COUNT ; i ++)
 {
  Soft_Time_Dec(&G_TIME[i]);
 }

 /* 下面的代码实现所有按键的检测
  按键检测每隔10ms一次就行了,一般做40ms的滤波处理就可以有效过滤掉机械动作造成的
  按键抖动。
 */
 if (++s_count >= 10)
 {
  s_count = 0;

  KeyPro();  /* 该函数在 button.c 中实现 */
 }
}

posted @ 2011-11-15 14:17  Cold_water  阅读(211)  评论(0编辑  收藏  举报