历史上的今天
今天是:2024年11月06日(星期三)
2019年11月06日 | 单片机按键长短按源程序(不需要通过等待来判定)
2019-11-06 来源:51hei
从做项目编写的程序里拆解出来
单片机源程序如下:
uint m;
static uchar flag_key=1; //按键松开标志
static uchar pass=0; //长按动作标志,为1时,长按已动作,为0时长按未动作
if(KEY==0)
{
flag_key=0; //按键按下标志
m++;
}
else
flag_key=1; //按键松开标志
if((flag_key==1)&&(m>10)&&(m<500)) //按键松开,并且m值处于10~500之间,为短按
{
m=0; //m值清零
//短按操作内容
}
if((m>=500)&&(pass==0)) //判断是否是长按并且是否已动作,如果是长按并且未动作执行下面括号内的语句
{
pass=1; //长按动作置1表示长按已动作
//长按操作内容
}
if(KEY==1) //判断按键是否松开,松开的话执行下面语句
{
pass=0; //长按动作标志位置0为下次长按做准备
m=0; //m值清零,为下次按键按下做准备
}
m值大小根据需要进行调整
史海拾趣
|
IO引脚配置和输入输出实验 在前几个实验中,我们一直在研究ARM核心东西。本次实验,我们要把最基本的外设----IO引脚学习一下。学习中要注意的几个问题:1、定时器时钟源的倍频分频。2、理解匹配及如何产生中断。3、产生中断后,如何跳转到中断函数 ...… 查看全部问答> |
|
是SPI初始化代码,也不是每次都会有异常,偶尔重新烧写NK的时候才出现。奇怪这如果错误了,怎么不是每次都出现! 定义: typedef struct __SPIRX_BUFFER_INFO { ULONG Read; &nbs ...… 查看全部问答> |
|
下面是原程序: #include #include #include #include #include #include #include #define UART_ULCON1 (*(volatile unsigned *)0x50004000) //UART 1 Line control #define UART_UCON1 &nb ...… 查看全部问答> |
|
请问谁有F2812的 on-chip flash programmer 请问谁有F2812的 on-chip flash programmer 我用的CCS 是CCS3.1 不知道可以从哪下载 有那个插件的朋友能不能飞一个给我 我的邮箱: shasha_zhu@yahoo.com.cn… 查看全部问答> |
|
我的理解是,电源输出电压恒定为12V,输出电流视负载大小而定,从0到2A,不知道有没有问题? 如果是这样理解,那么能带的最大负载是12V/2A=6Ω,小于6Ω的负载是否会产生过流保护?如果没有过流保护电路,是否烧电源? 开关电源的过压保 ...… 查看全部问答> |




