野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14179|回复: 0

同一个按键控制液晶显示不同内容

[复制链接]
发表于 2015-4-16 20:04:17 | 显示全部楼层 |阅读模式
本帖最后由 dyg 于 2015-4-16 20:13 编辑

      我用定时器写的扫描,每个10ms扫描一次按键,我在以下里面计数,发现计数自动增加,不知该怎么处理?求高手教以下如何实现按键计数,
     void TIM2_IRQHandler(void)
{
        u8 temp;
        
        if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
        {        
                if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == Bit_RESET){
                        temp = 0;
                }
                else{
                        temp = 1;
                }
                KeyPrev = KeyCurrent;
                KeyCurrent = temp;
                if((KeyPrev == 0) && (KeyCurrent == 0)){
                        KeyStatus = 1;
                       KeyCount++;
                }
                else{
                        KeyStatus = 0;
                }
                TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);                  
        }                        
}

      在main文件这样写
while(1)
  {
    if ( KeyStatus == 0 )
  {     switch(KeyCount)
        {  case 0:function1();
           break;
         case 1:function2();
        break;
        default: function3();
        break;
}
}           








主题推荐

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-4 18:14 , Processed in 0.026265 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表