在写按键检测的程序时,由于未将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 中实现 */
}
}