栏目分类
PORT中文网
你的位置:Carbon browser中文网 > PORT中文网 > 如何进行按键检测和按键FIFO的实现
如何进行按键检测和按键FIFO的实现
发布日期:2025-01-03 17:39 点击次数:150
一、如何进行按键检测检测按键有中断方式和GPIO查询方式两种。推荐大家用GPIO查询方式。1.从裸机的角度分析中断方式:中断方式可以快速地检测到按键按下,并执行相应的按键程序,但实际情况是由于按键的机械抖动特性,在程序进入中断后必须进行滤波处理才能判定是否有效的按键事件。如果每个按键都是独立的接一个 IO 引脚,需要我们给每个 IO 都设置一个中断,程序中过多的中断会影响系统的稳定性。中断方式跨平台移植困难。查询方式:查询方式有一个最大的缺点就是需要程序定期的去执行查询,耗费一定的系统资源。实际上耗费不了多大的系统资源,因为这种查询方式也只是查询按键是否按下,按键事件的执行还是在主程序里面实现。2.从OS的角度分析中断方式:在 OS 中要尽可能少用中断方式,因为在RTOS中过多的使用中断会影响系统的稳定性和可预见性。只有比较重要的事件处理需要用中断的方式。查询方式:对于用户按键推荐使用这种查询方式来实现,现在的OS基本都带有CPU利用率的功能,这个按键FIFO占用的还是很小的,基本都在1%以下。二、最简单的按键检测程序先给他说了一种经典的按键检测代码,相信大多数人使用按键函数都见过它,很简单就不过多介绍了!#defineKEY0_PRES1//KEY0#defineKEY1_PRES2//KEY1#defineWKUP_PRES3//WK_UPu8KEY_Scan(u8mode){staticu8key_up=1;//按键按松开标志if(mode)key_up=1;//支持连按if(key_up&&(KEY0==0
上一篇:没有了