RecyclerView基类的封装(单击双击事件)及附demo完整使用操作
2022-10-20 21:10:01 3KB RecyclerView
1
#include "ioCC2530.h" #define LED1 P1_0 #define LED2 P1_1 #define JD1 P1_7//继电器1 #define JD2 P2_0//继电器第二联 #define SW1 P1_2//按键1 unsigned char count=0; unsigned char Num=0; void delay(int time) { while(time--) { for(int i=0;i<240;i++); } } void Init_Port() { P1SEL &=~ 0x9f;//设置P1口的通用输入输出端口 P1DIR |=0x9b; P1DIR &=~0x04; P1INP &=~0x04;//设置输入模式 P2INP &=~0x40; P2SEL &=~0x01;//设置P2口的通用输入输出端口 P2DIR |=0x01; } void Timer_Init() { T1CC0L =0xD4; T1CC0H = 0x30; T1CCTL0 |=0x04; T1IE=1; EA=1; T1CTL =0x0e; } #pragma vector=T1_VECTOR __interrupt void Timer1_int() { T1STAT &=~0x20; if(SW1 !=0 && Num !=0) { count++; } } void Scan() { if(SW1==0) { delay(100); if(SW1==0) { while(SW1==0); count=0; Num++; if(Num>2) { Num=2; } } } if(count>5) { if(Num==1) { JD1 =!JD1;//继电器1 的状态改变 LED2=1; LED1=0; } else if(Num==2) { JD2=!JD2;//继电器2的状态改变 LED1=1; LED2=0; } count=0; Num=0; } } void main(void) { Init_Port(); Timer_Init(); LED1=1; LED2=1; JD1=0; JD2 =0; while(1) { Scan(); } }
2022-08-02 10:47:47 1KB CC253 单击双 双联继电 SW
1
个人博客:CSDN “老子姓李!” 参考教程链接:http://t.csdn.cn/W9rIy 引言: 在日常生活中,有不少按键长按、短按的应用实例。比如:一个台灯,短按切换亮度,长按关机。 问题来了,单片机是如何区分按键的短按和长按的呢? 本程序使用定时器,运用状态机的思想,实现了单按键的单击长按操作。 代码简洁规范,可读性强,移植性强。 实验器材: 自制开发板,STM32F03C8T6平台 实验目的: 学习定时器中断、按键使用。实现单击双击长按操作 硬件资源: 按键(PA0,也称之为WK_UP) 定时器3 串口1,用于打印输出 按键事件: 长按事件:任何大于 1秒 按下并释放事件(不支持连按,需连按,稍微修改状态机即可) 单击事件:按下时间不超过 1秒 且 释放后 500ms 内无再次按下的操作 双击事件:俩次短按时间间隔小于500ms,俩次短按操 本程序只供学习使用,未经作者许可,不得用于其它任何用途 感谢大家的阅读与下载,码字开源分享不易,麻烦给个免费的赞。 如果有帮助的,请不要吝啬三连。点赞评论收藏,让更多人看到有用的内容。 本博客作抛砖引玉,欢迎大家评论交流。
2022-06-02 20:01:03 182KB stm32 嵌入式硬件 单片机 状态机
1
VLC 核心库默认接管了鼠标的所有响应,自己编译了VLC2.2.1源码库,使其能响应鼠标的左键单击、双击,右键的单击响应;优化缩减了最终生成文件的大小;解决了常规自编译状态下,Release 版本的调用错误问题。——欢迎指正。
2021-10-27 12:45:04 1.4MB vlc 鼠标 单击 双击
1
有关单片机的 按键 长按 短按 双击 组合按程序分享啊
2021-10-18 15:53:43 802B 按键长短按 组合按 单击双击
1
C#模拟鼠标事件,包括单击,双击,移动,MouseDown,MouseUP
2021-09-22 14:32:00 2KB C# 模拟 鼠标 事件
1
C++模拟鼠标移动和单击双击
2021-09-07 16:03:31 21KB C++
1
单片机入门,实现按键的单击双击和长按,使用定时器,方便移植。
2021-08-06 17:05:28 1KB 单片机 按键
1
while(1) { /* user code start */ if(basicRfPacketIsReady()){ basicRfReceive(buf,1,NULL); if(buf[0]==0x01){ P1_7=!P1_7; P1_0=1;4 } else if(buf[0]==0x00) { P1_7=!P1_7; P1_0=0; } else if(buf[0]==0x03) { P2_0=!P2_0; P1_1=1; } else if(buf[0]==0x02) { P2_0 =!P2_0; P1_1=0; } } /* user code end */ }
2020-01-03 11:17:33 391KB 单片 CC2530 双联继电 无
1