首页 > 其他分享 >记录一次计数代替空延时的按键检测方法ByWYJ

记录一次计数代替空延时的按键检测方法ByWYJ

时间:2024-11-05 22:44:21浏览次数:1  
标签:Cnt KEY else 抬起 延时 按键 GPIO ByWYJ

//按键处理
void keyProc(void)
{
	static unsigned int Cnt = 0,KEY = 0;
	if((GPIO_ReadInputData(GPIOA) & 0xF000) != 0xF000) //按下时刻:判断GPIOA口是否有一个或多个按键按下
	{
		Cnt += 1;
		KEY = GPIO_ReadInputData(GPIOA);
		
		if (Menu == 5) // 当Menu == 5且GPIO_Pin_13按下时
        {
			if(Cnt % 20 == 0)	//调节的速度可以自己修改
				//执行长按不抬起就执行的动作
        }
	}
	else		//抬起
	{
		if(Cnt > 5)		//短按抬起
		{
			Cnt = 0;
			if((KEY & GPIO_Pin_12) == 0)
			{
				//执行短按抬起后的动作
			}
			else if((KEY & GPIO_Pin_13) == 0)
			{
				//执行短按抬起后的动作
			}
		}
		else if(Cnt > 100)	//长按抬起
		{
			Cnt = 0;
			//执行长按抬起后的动作
		}
		else 
			Cnt = 0;
	}
}

 

标签:Cnt,KEY,else,抬起,延时,按键,GPIO,ByWYJ
From: https://www.cnblogs.com/YYZYCS/p/18529013

相关文章

  • 【STC8H】通用的软件延时函数
    单片机程序用软件延时来进行时间控制是经常的,比如让LED按一定的规律闪动。过去我用IAP15W4K58S4单片机时,我采用STC官网上下载的STC15实验箱范例程序的延时程序,其延时函数的定义为:voiddelay_ms(u8ms){u16i;do{i=MAIN_Fosc/13000;while(--i);//14......
  • STM32按键开关灯
    文章目录概要整体架构流程灯LEDSTM32F103的IO口--IN/OUT输入输出的接口IO口资源和命名方式stm32中GPIO的内部结构以及工作模式寄存器与配置时钟软件编程驱动LED灯延时函数使用嘀嗒定时器按键驱动概要使用Stm32F103ZET6型号芯片开发项目中灯led、IO口、......
  • Ubuntu系统如何实现键盘按键映射到其他按键(以 Ctrl+c 映射到 F3,Ctrl+v 映射到 F4 为
    文章目录写在前面1.功能描述2.实现步骤2.1安装`AutoKey`2.2软件设置2.2.1软件设置2.3测试是否安装成功参考链接写在前面自己的测试环境:Ubuntu20.041.功能描述  Ubuntu系统使用Ctrl+c、Ctrl+v进行复制粘贴操作的时候,时间长了就会出现小拇指比较累的情......
  • FPGA实例——按键消抖和自定义IP封装
    按键消抖:简介:目前,在大部分的FPGA开发板上都带有机械按键,由于机械按键的物理特性,按键在按下和释放的过程中,存在一段时间的抖动,这就导致在识别按键的时候可以检测到多次的按键按下,而通常检测到一次按键输入信号的状态为低电平,就可以确认按键被按下了,所以我们在使用按键时往往需......
  • 关于安卓Handler之延时我不准时
    背景最近在做一个小功能,其中涉及到一个延时处理逻辑,如果是通过定时去轮询并且执行,那么就会导致一个耗电问题,所以定时轮询是不实际的,所以暂停的思路,就是通过延时实现。思考安卓延时,好家伙,一看还能有几个能实现,第一个handler,第二个AlarmManager,还有一些什么threadpoolint......
  • 51单片机 3.1独立按键的基本操作
    一、电路图及分析(部分解释参考网络,仅用于学习记录)蓝桥杯单片机的板子将独立按键和矩阵按键结合了起来,通过一个短接片选择使用独立按键还是矩阵按键。首先我们先看原理图的左下角绿色方框所标的地方,这里与我们板子上的短接片所对应,是选择按键工作模式的地方。  如果短......
  • 【JavaEE初阶】深入理解TCP协议特性之延时应答,捎带应答,面向字节流以及异常处理
     前言......
  • 003:通过按键控制LED亮灭
    这里我就单纯的展示下通过按键控制LED亮灭的方法,不考虑按键消抖和其他的问题。话不多说直接展示代码:#include"stm32f10x.h"//Deviceheader#defineLED_PINGPIO_Pin_5//假设LED连接到GPIOA的第5个引脚#defineBUTTON_PINGPIO_Pin_1//假设按键连......
  • Protues中51单片机按键无法复位(已解决)
    前言昨晚用Protues搭建了51的最小系统电路,在实物中好用的复位电路,到仿真里不能正常复位了。51单片机是高电平复位,所以在运行时RST引脚应该是低电平,但在仿真中RST引脚一直保持高电平,导致按下按键也不能复位单片机。解决方法我在网上搜索的解决方法一共有两种:1、改电......
  • 延时队列(RabbitMQ)
    1.概述延时任务,也叫延迟任务延迟队列:没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事件,任务可以立即执行,也可以延迟。2.技术选型RabbitMQ(死信交换机)实现方式TTL+私信交换机1.概述死信队列:存放死信的队列死信交换机:绑定死信队列......