基于MS16F3211芯片的触摸控制灯的状态变化和亮度控制(11.20)

1.判断长按短按

u8 Mode_state_flag = 0;
u32 buttonPressTime = 0;
u8 longPressflag = 0;
u8 shortPressflag = 0;
// 普通认证 执行此处函数
void T_Key0_Func(void)
{
	if (TKey_Signal.oneBit.b0 == 1)
	{
		buttonPressTime++;
	}
	if ((TKey_Signal.oneBit.b0 == 1) && (Pre_TKey_Release.oneBit.b0 == 1)) // 按下执行
	{

		Pre_TKey_Release.oneBit.b0 = 0; // 为0时代表按键被按下,为1时代表按键松开
		F_User_Tkey0 = 1;
		FTP0IE = 1;
		FTP0EN = 1;
		FGIE = 1;

	}

	else if (TKey_Signal.oneBit.b0 == 0) // 松开执行
	{

		Pre_TKey_Release.oneBit.b0 = 1; // 无手指 执行

		if (F_User_Tkey0 == 1) // 松键执行-在这里
		{
			F_User_Tkey0 = 0;

			if (buttonPressTime <= 1000)  //短按切換、
			{
				PB ^= 0B00010000;
			}
			else						 //長按
			{
				PB ^= 0B00001000;		//PB3
			}
			FTP0IE = 0;
			buttonPressTime = 0;
#if (IS_SLEEP_MODE == 1)
			F_User_Sleep = ~F_User_Sleep; // 测试使用,用户需要注释,自行根据程序给出该标志位
#endif
		}
	}
}

現在的思路是建立一个变量,在按键按下时会进行累加,然后在按键松开的时候对这个变量的值进行判断。就可以判断。但是现在发现短按时灯会短暂熄灭又亮起。测试发现该问题偶发性。

猜测1:硬件消抖问题

猜测2:时间应该再弄长一点

解决:在GPIO初始化中将PB设置为0x00000000就行

2.给系统增加按键功能,并且独立开长按和短按

				case 0:
					PB = 0B01001000; // 翻转 PB6 的输出电平

					Mode_state_flag = 1;
					break;
				case 1:
					PB = 0B00001100; // 翻转 PB6 的输出电平

					Mode_state_flag = 2;
					break;
				case 2:
					PB = 0B00001000; // 翻转 PB6 的输出电平

					Mode_state_flag = 3;
					break;
				case 3:
					PB = 0B01000100; // 翻转 PB6 的输出电平

					Mode_state_flag = 0;
					break;
				}

问题1:现在希望通过switch case这个语句来进行对按键状态的变换,但是发现在点按按键时由PB2输出PWM1控制的LED灯的现象为立马达到最亮,然后继续点按按键无任何反应。

因为灯的亮度有变化,所以代表程序的控制是起作用的。亮度一下子达到最高,代表着此时PB2的引脚输出的为低电平。但是在控制高电平时灯并没有熄灭,亮度也没发生变化。改了下初始化变化为无反应。

猜测1:是不是这个口作为PWM的输出口,导致无法通过这种方式控制。注释掉定时器的初始化函数问题解决,所以考虑,问题出在pwm的初始化内。

在按键扫描函数中

增加引脚重复初始化的话按键可以响应,但是led灯的亮度每次都是最高

问题2:现在已经可以实现基本的颜色切换了,但是解决了可以切换的问题后,在长按后的颜色并未保留下来。

猜测2:应该在定时器内作区分,或者说在按键扫描函数内重新对PWM的输出或者禁止做出改变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/171729.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker快速安装Mariadb11.1

MariaDB数据库管理系统是MySQL的一个分支&#xff0c;主要由开源社区在维护&#xff0c;采用GPL授权许可 MariaDB的目的是完全兼容MySQL&#xff0c;包括API和命令行&#xff0c;使之能轻松成为MySQL的代替品。在存储引擎方面&#xff0c;使用XtraDB来代替MySQL的InnoDB。 Mari…

每日一题 2216. 美化数组的最少删除数(中等,贪心)

贪心&#xff0c;一开始可能会觉得如果删除前面一个相等的元素时&#xff0c;会导致后面的元素前移&#xff0c;造成产生更多的相等的元素对的情况但是在遍历过程中至少要在相等元素对中删除一个&#xff0c;也可以同时删除两个使得后面的元素奇偶关系不变&#xff0c;但是显然…

基于GB28181搭建流媒体服务器--1.概念解析

什么是GB28181 GB28181(国标28181)&#xff0c;全称为《中华人民共和国公共安全视频监控联网系统技术要求》&#xff0c;是中国国家标准委员会发布的一个针对公共安全视频监控领域的标准框架。该标准指导了视频监控设备之间的联网互通&#xff0c;统一管理和控制&#xff0c;并…

Vue3鼠标拖拽生成区域块并选中元素

Vue3鼠标拖拽生成区域块并选中元素&#xff0c;选中的元素则背景高亮(或者其它逻辑)。 <script setup> import { ref } from vue// 区域ref const regionRef ref(null)// 内容ref const itemRefs ref(null)// 是否开启绘画区域 const enable ref(false)// 鼠标开始位置…

路线规划问题

文章目录 1、问题描述2、节点类设置3、设置节点之间的关系4、路线规划5、完整类6、结果7、优化 1、问题描述 如下图&#xff0c;存在A~F六个地点&#xff0c;已知所有地点的相关关系&#xff08;每个地点能到达的下一节点名称以及对应的路程&#xff09;&#xff1b; 计算某个…

深度学习动物识别 - 卷积神经网络 机器视觉 图像识别 计算机竞赛

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

最新最全系列之Selenium:传入webdriver驱动的新方法 Service()函数;以前的executable_path报警告,即将弃用

传入webdriver驱动的新方法 Service()函数&#xff1b;以前的executable_path报警告&#xff0c;即将弃用 以前的方法 举例&#xff1a;webdriver.Chrome(executable_pathdriver_path)&#xff1b;看提示警告&#xff0c;提示该方法即将被弃用&#xff1b;如下图&#xff1a; …

碳中和领域研究,细谈新能源“爆发”的原因之一

碳中和时代&#xff0c;能源结构、能源生产方式将发生根本变化&#xff0c;依靠绿色科技的进步&#xff0c;驱动颠覆性技术的创新。 碳中和的概念及主要方式 碳中和可以理解为一种类似“数字化”、“信息化”的方式或概念。覆盖我们生活中的各个领域。 实现碳中和的目的不仅…

力控软件与2台200Smart之间无线以太网通信

在实际系统中&#xff0c;车间里分布多台PLC&#xff0c;需要用上位机软件集中控制。通常所有设备距离在几十米到上百米不等。用户会选择以太网方式是因为传输速度有保障&#xff0c;而选择无线以太网方案是因为不想开挖电缆沟&#xff0c;或者布线不方便&#xff0c;不但施工麻…

HCIP-二、MSTP+Eth-trunk

二、MSTPEth-trunk 实验拓扑实验需求及解法 实验拓扑 实验需求及解法 //1.如图所示&#xff0c;配置设备名称和 IP 地址。 //2.在 SW1 与 SW2 之间配置链路聚合协议 LACP&#xff0c;完成以下需求&#xff1a; //2.1 SW1 作为主动端&#xff0c;设置系统优先级为最高。 [SW1]l…

软件测试最全的面试八股文(2023最新版)

1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&#xff0c;不…

【微信小程序】2023年11月版本 关于小程序隐私保护指引设置的公告 | 修改微信小程序隐私保护 |小程序无法获取用户昵称 头像 性别 等问题

一、登录小程序后台 《关于小程序隐私保护指引设置的公告》 https://mp.weixin.qq.com/cgi-bin/announce?actiongetannouncement&announce_id11691660367cfUvX&version&langzh_CN&token 上面是官方的文档&#xff0c;但是由于比较陈旧&#xff0c;和现在的页面…

“三面一体”的业务调度方案在运营商订单运营的实践

在当前信息化时代&#xff0c;运营商的业务流程复杂度和多样性持续增长&#xff0c;多个系统、部门以及相关事务需要进行高效准确的调度。如何在这样的背景下&#xff0c;保证业务流程的顺畅&#xff0c;业务信息的实时传递以及业务决策的准确性&#xff0c;是业务运营面临的重…

开源之夏2023 MatrixOne 项目结业啦

开源之夏是由中国科学院软件研究所与 OpenEuler 社区共同主办的一项面向高校学生的暑期在线活动&#xff0c;旨在鼓励在校学生积极参与开源软件的开发维护&#xff0c;促进优秀开源软件社区的蓬勃发展。 在开源之夏 2023 年中&#xff0c;MatrixOne 一共有 2 个任务项目&#…

万界星空科技QMS质量管理系统功能

QMS质量管理系统结合质量决策、综合质量管理、过程质量控制三个层次要素&#xff0c;帮助企业实现产品全寿命周期质量数据的及时、灵活、准确和全面采集。 通过质量管理软件能够实现质量数据科学处理和应用&#xff0c;包括数据的系统化组织、结构化存贮、便捷式查询、定制化统…

rabbit MQ的延迟队列处理模型示例(基于SpringBoot)

说明&#xff1a; 生产者P 往交换机X&#xff08;typedirect&#xff09;会发送两种消息&#xff1a;一、routingKeyXA的消息&#xff08;消息存活周期10s&#xff09;&#xff0c;被队列QA队列绑定入列&#xff1b;一、routingKeyXB的消息&#xff08;消息存活周期40s&#xf…

如何给shopify motion主题的产品系列添加description

一、Description是什么 Description是一种HTML标签类型&#xff0c;通过指定Description的内容&#xff0c;可以帮助搜索引擎以及用户更好的理解当前网页包含的主要了内容。 二、Description有什么作用 1、基本作用&#xff0c;对于网站和网页做一个简单的说明。 2、吸引点击&…

开启AI高效办公时代,成为AI时代的先行者

文章目录 AI智能化办公&#xff1a;未来办公的新模式一、AI智能化办公的优势1. 提高工作效率2. 降低成本3. 提高决策质量4. 促进团队协作 二、AI智能化办公的应用场景1. 智能助手2. 智能会议3. 智能文档处理4. 智能数据分析 三、AI智能化办公的挑战与前景1. 数据安全与隐私保护…

2015-2020年全国地区生产总值及一二三产构成数据总览,shp/excel格式

今天我们来整理了2015-2020全国地区生产总值及一二三产构成数据&#xff0c;数据格式为shpexcel格式&#xff0c;数据精度可达各区县。 另外&#xff0c;需要说明的是&#xff1a;由于统计年鉴指标调整&#xff0c;每一年的数据并非字段相同&#xff0c;字段详情请参考已下载数…

1688开放平台API接口获取商品详情信息

一、API接口简介 1688开放平台提供了丰富的API接口&#xff0c;帮助开发者快速实现各种业务需求。其中&#xff0c;商品详情信息的获取是很多业务场景中的基础功能。通过调用相应的API接口&#xff0c;您可以获取到商品的基本信息、价格、库存等数据&#xff0c;为您的业务提供…
最新文章