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

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

转载于:https://www.cnblogs.com/Ice-water/archive/2011/11/15/2249669.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值