嵌入式软件架构设计之十六:LED灯多种指示状态逻辑如何实现?

关键词:LED灯状态控制、事件触发、状态转换、占空比、面向数据结构编程

     

       在嵌入式设备上,常常设计有LED指示,用来指示设备的运行状态,如常见的红灯、绿灯、蓝灯,可以用来分别指示电源状态,网络连接状态,通信状态,故障状态等。LED灯物理状态通常只有亮和灭,硬件上使用一个GPIO脚进行拉高、拉低来驱动LED实现亮和灭,是嵌入式开发中最最简单的功能。 但是对于业务层逻辑来说,要在一个LED上实现多种逻辑状态并没有那么简单,还是要花费点功夫做些数据结构和逻辑上的设计,以及要考虑到设备休眠时LED需要熄灭的控制。

一、一灯多状态

     比如有个这样的功能需求:设备上有一个绿灯LED,需要实现如下状态:

1.网络未连接时:5秒周期,10%占空比(亮500ms)闪烁

2.网络连接时   :3秒周期,10%占空比(亮300ms)闪烁

3.OTA升级中   :1秒周期,50%占空比(亮500ms)闪烁

4. 串口通信中  :0.5秒周期,50%占空比(亮250ms)闪烁

驱动接口已经实现:<

STC8G1K08定时器0中断实战:从官方例程到LED呼吸灯实现 本文以STC8G1K08单片机官方例程为基础,详细解析了定时器0中断的工作原理与配置方法,并指导读者将其升级改造,实现LED呼吸灯效果。通过核心代码解读与PWM调光原理剖析,帮助开发者掌握利用定时器中断进行精准实时控制的关键技能,从基础闪烁进阶到平滑调光。 阅读详情

相关推荐

按键重新LED数码管倒数C语言,单片机之Protues模拟仿真-按键控制LED小灯和数码管99倒计时...

前言今天抽时间用protues软件仿真了一个按键控制LED小灯和数码管99倒计时的单片机小程序,就拿来和大家分享一下吧。本次展示的仿真是通过51单片机的C语言进行程序的编写,相信学习单片机的小伙伴对51单片机和C语言的基础知识应该是有的,在此我就不详细介绍单片机的基础知识。希望大家能够理解。原理通过P0.0到P0.3四个按键控制LED小灯的亮灭和数码管的99倒计时。现象功能为:程序运行后按下K1按...

weixin_33277564的博客 2192

单片机控制第一个外设-LED灯

1 单片机编程的一般步骤(1)目标分析。我们的目标是点亮开发板上的LED灯。(2)原理图分析: 目标器件(LED)工作原理 相关模块电路连接 控制线路分析:相关IO端口是哪些? (3)代码编写、编译。(4)下载与调试。2 原理图与控制方法分析2.1 原理图概况浏览(1)目的1:把原理图的相关部分摘录出来重点看。(2)目的2:把相关部分的原理图的关键部分(74573芯片)重点看。2.2 74HC573

一万HOURS的知识库 2042

ZYNQ平台RTL8211F-CG寄存器配置与LED状态调试实战

本文详细介绍了在ZYNQ平台上调试RTL8211F-CG PHY芯片LED状态的实战经验。重点解析了LED控制寄存器(LCR)的配置方法,提供了完整的代码实现,并分享了硬件电路设计注意事项和常见问题解决方案,帮助开发者高效完成PHY芯片的LED调试工作。

desk3的博客 890

嵌入式系统开发笔记109:多个LED的闪烁控制

本文介绍如何使用前/后台程序,完成多个LED的闪烁控制。

snmplink的博客 1594

【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)

一.前置操作1.独立按键介绍2.独立按键的原理图图与电平状3.开发板图查询:对应独立按键,LED和MCU的原理图,找对应接口控制4.按键寄存器:利用【寄存器检测IO电平并返回的性质】5.LED:寄存器P2——>8位控制,P2_n——>1位控制二.【控制LED亮灭】三.【控制LED状态】1.按键抖动问题2.我们要采用【时间延迟】的原理规避这一现象四.【控制LED二进制式显示五.【控制LED不断移位】

YYDsis的博客 1828

基于tiny13单片机的数字逻辑笔设计与实现(含SCH原理图与PCB)

作为一款精简型AVR微控制器,Atmel tiny13采用哈佛架构设计,具备独立的数据与指令总线,支持大多数指令在单个时钟周期内完成执行,显著提升了运算效率。其核心基于增强型RISC(Reduced Instruction Set Computing)结构,共提供90多条指令,其中绝大多数为单周期指令,使得在8MHz内部振荡器驱动下,理论峰值性能可达8 MIPS(百万条指令每秒)。这种高执行效率对于实时性要求较高的电平采样任务至关重要。

weixin_31139479的博客 1185

从查表法到实时计算:SimpleFOC库中正弦函数优化的技术演进

本文深入探讨了SimpleFOC库v2.0.1版本中正弦函数优化技术的演进,从传统查表法到实时计算的创新实践。通过定点数优化、对称性利用和分段线性插值等关键技术,实现了在嵌入式电机控制中的高效三角函数计算,显著提升性能和资源利用率。

weixin_28273593的博客 452

【故障处理】- ORA-01722

在执行升级脚本@?/rdbms/admin/catupgrd.sql时报错ora-01722。

weixin_39099660的博客 855

基于单片机红外线遥控Proteus仿真电路发射接收

*单片机设计介绍,基于单片机红外线遥控Proteus仿真电路发射接收。

2201_75940997的博客 3942

Field-Oriented Control (FOC) 矢量控制 磁场定向控制

Field-Oriented Control (FOC) 磁场定向控制(FOC),也称为矢量控制,是一种用于控制永磁同步电动机(PMSM)和交流感应电动机(ACIM)的技术。 FOC在整个扭矩和速度范围内都具有良好的控制能力。 FOC的实现需要将定子电流从固定参考系转换为转子磁通参考系(也称为d-q参考系)。 速度控制和转矩控制是FOC最常用的控制模式。位置控制模式不太常见。大多数牵引应用使用转矩控制模式,在该模式下,电动机控制系统遵循参考转矩值。在速度控制模式下,电机控制器遵循参考速度值,并生成用于形成内

>>> 1万+

AI for Science:GNN预测分子性质全流程详解与工业实践

从分子表示到工业落地,一文掌握图神经网络在药物研发与材料设计中的核心实战近年来,的浪潮正深刻变革着传统科研范式。在药物研发与材料设计领域,作为核心环节,已从传统的实验试错转向基于图神经网络(GNN)的智能计算。本文将深入解析GNN预测分子性质的,涵盖数据准备、模型设计、训练优化到工业部署,并揭秘前沿技术与实战案例。

datacanvas2426的博客 1674

王爽《汇编语言》课程设计2(不涉及软盘版本)

assume cs:code,ds:data,ss:stack stack segment db 128 dup (0) stack ends data segment db 256 dup (0) data ends code segment start: mov ax,stack mov ss,ax mov sp,128 ...

weixin_41944412的博客 1178

手把手教你复现KDD 2024时空预测顶会论文:以UniST和ImputeFormer为例的代码实战与避坑指南

本文详细指导如何复现KDD 2024顶会论文中的UniST和ImputeFormer模型,涵盖环境配置、数据处理、模型训练及评估等关键步骤。通过实战案例和避坑指南,帮助研究者掌握时空预测与插补技术,提升在智慧城市、交通管理等领域的应用能力。

weixin_29204205的博客 279

十三种通信接口芯片——《器件手册--通信接口芯片》

通信接口芯片用于实现差分信号的传输,具有抗干扰能力强、传输距离远等优点。RS485支持多点通信,可连接多个收发器,而RS422支持单向多点通信。广泛应用于工业自动化、过程控制、仪器仪表、楼宇自动化(如暖通空调、保安系统)、电机控制等领域。ST3485EBDRTP8485ESR用于实现串行通信,支持点对点通信,传输距离相对较短,数据速率较低。常用于计算机与外设(如打印机、调制解调器)之间的通信。如芯力特的SIT3232,可作为ST3232的替代品。

XU157303764的博客 4273

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 嵌入式软件架构设计之十五:版本升级中的文件完整性校验算法-MD5、SHA256(上位机工具及C语言代码)
下一篇: 6轴加速度计开发学习
μLink
博客等级 码龄5年 123粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值