按键中断消抖--2

摘要:
外部中断密钥处理uchag_ucKeyVal=0;ucharg_ ucKeyCnt=0;ucharg_ ucKeySta=0;它指示是否按下u8KeyDeal键//获取键值-记住不要延迟{returndata}//获取键值并进行一些正确处理//关键字:g_UcKeySta表示按下状态//只要它被按下而不被释放,状态总是1//只要它被释放,它就是0u8KeyScan{key1=KeyScan();如果(key1!=0xff){key2=KeyScan);如果{g_ucKeySta=1;}else_ucKeySta=0;}elseg_ ucKeySta=0;returnkey1;}//减去计时器//函数:delay processing void time0(){ifg_ucKeyCnt--;//如果&&g_ucKeyCnt=20;}//g_ucKeyCnt键值延迟//当内核中断时,//键值延迟为0,则分配键值延迟
外部中断按键处理

uchar g_ucKeyVal=0;
uchar g_ucKeyCnt=0;  
uchar g_ucKeySta=0;  代表有无按键按下

u8 KeyDeal(void) //获取按键值  ---记住不要延时

   return data
}
//对获取键值,进行一下正确性处理
//关键字: g_ucKeySta  代表按下状态
//                    只要按下不松开,状态一直为1
//                    只要松开就为0
u8 KeyScan(void)
{
    key1=KeyScan();
    if(key1!=0xff)
    {
         key2=KeyScan();
         if(key1==key2)
         {
            g_ucKeySta=1;
         }
         else
            g_ucKeySta=0;
     }
     else
         g_ucKeySta=0;
     return key1;
}

//定时器中  进行减操作
//作用:延时处理
void time0()
{
    if(g_ucKeyCnt) g_ucKeyCnt--;
    //一直按
    if(g_ucKeyCnt==0)&&(g_ucKeySta)
             g_ucKeyCnt=20;
}

// g_ucKeyCnt   键值延时
// 核心 当中断发生后
//获取到键值延时为0,则把键值延时赋值
//在些期间,再有中断发生,不会再次采集按键(取巧避过延时)
void ISR ()
{   
   if(g_ucKeyCnt==0)   当值为0才进行下一次采集,避免按键延时
   {
    g_ucKeyVal=KeyScan();
        g_ucKeyCnt=20;
    }
}

                        星空小蜗牛
按键中断消抖--2第1张

免责声明:文章转载自《按键中断消抖--2》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇推荐系统指标评测——覆盖率与基尼系数的算法与应用Android 换肤功能的实现(Apk插件方式)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

FreeRTOS理解

列表的插入 初始化 插入步骤   在图3-1中我们看到寄存器xPSR被初始为0x01000000,其中bit24被置1,表示使用Thumb指令;寄存器PC被初始化为任务函数指针vTask_A,这样当某次任务切换后,任务A获得CPU控制权,任务函数vTask_A被出栈到PC寄存器,之后会执行任务A的代码;LR寄存器初始化为函数指针prvTaskExitErr...

redis的过期时间设置和过期删除机制

1.设置过期时间redis有四种命令可以用于设置键的生存时间和过期时间 EXPIRE <KEY> <TTL> : 将键的生存时间设为 ttl 秒 PEXPIRE <KEY> <TTL> :将键的生存时间设为 ttl 毫秒 EXPIREAT <KEY> <timestamp>...

个人技术总结-Postman简单的使用

1. 技术简介 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是...

中断上下文

1.进程上下文: (1)进程上文:其是指进程由用户态切换到内核态是需要保存用户态时cpu寄存器中的值,进程状态以及堆栈上的内容,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。 (2)进程下文:其是指切换到内核态后执行的程序,即进程运行在内核空间的部分。 2.中断上下文: (1)中断上文:硬件通过中断触发信号,导致内核调用...

收录 Uboot 详解

--------------------------------------------------------------------------------------------------------  我们知道,bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。     在PC机上引导程序一般...

Windows Server 2008 R2 免费使用 7200天 激活

首先安装后,有一个180天的试用期。 在180天试用期即将结束时,使用下面的评估序列号激活Svr 2008 R2 可以重新恢复180天试用期 Windows Server 2008 R2 Web: KBV3Q-DJ8W7-VPB64-V88KG-82C49 Windows Server 2008 R2 Standard: 4GGC4-9947F-FW...