论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
物联网CC2530按键单双击分别控制两灯
物联网CC2530按键单双击分别控制两灯
锦通
论坛元老
|
2024-10-14 15:01:29
|
显示全部楼层
|
阅读模式
楼主
主题
1021
|
帖子
1021
|
积分
3063
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
(1)确定思路单击和双击的效果分别是怎样的(此文章采用简单的延时函数不涉及停止)。首先可以定义一个普通延时delay和一个标志位count变量,这里需有个延时阈值咱们直接可以宏定义B值(这里需要留意宏定义的值肯定要大一些否则双击效果不会触发)。
(2)在按下按键等候松开后,让变量count自增去与B比较,小于B时延时让count自增,期间按键被再次按下则实现双击效果
(3)如果在count值自增期间按键并没有被再次按下则实现单击效果(这里单击效果可能略有延时,可通过调治B值解决)
具体代码如下
`#include
define B 1000
unsigned int count = 0;//定义计时变量
void Init_port()//引脚初始化
{
P1DIR |= 0x03;
P1SEL &= ~0x03;
}
void delay(unsigned int time)//定义一个简单延时
{
while(time--);
}
void Scan_P1_2()
{
if(P1_2 == 0)
{
delay(50);//延时消抖
if(P1_2 == 0)//确认按键按下
{
while(P1_2 == 0);//循环检测按键按下
while(count < B)//上面已定义count值为0,小于B再去检测按键是否被再次按下
{
delay(100);
count++;//让计数变量自增
if(P1_2 == 0)
{
delay(100);//延时消抖
if(P1_2 == 0)//确认再次被按下
{
while(P1_2 == 0);
P1_0 = ~P1_0;
count = 0;//实现效果后将计数变量置为0
break;//跳出循环(while(count < B))
}
}
}
if(count >= B)//如果count值自增到延时阈值B之前按键没有再次按下实现单击效果
{
P1_1 = ~P1_1;
count = 0;
}
}
}
}
void main(void)
{
Init_port();
while(1)
{
Scan_P1_2();
}
}
CSDN:
https://blog.csdn.net/2301_79116943/article/details/142871186?fromshare=blogdetail&sharetype=blogdetail&sharerId=142871186&sharerefer=PC&sharesource=2301_79116943&sharefrom=from_link
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
锦通
论坛元老
这个人很懒什么都没写!
楼主热帖
漏洞利用
vue3 - 最新详细实现 “拖曳式课程表“ ...
快速入手node.js
奇怪,为什么ArrayList初始化容量大小 ...
医院HIS体系厂家统计
如何成为一位人心所向的管理者?我的经 ...
Kubernetes(k8s)pod详解
如何在文章中设置灰色文本框(正文底色 ...
Vue实现复制粘贴功能
理解MVCC
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
DevOps与敏捷开发
容器及微服务
SQL-Server
快速回复
返回顶部
返回列表