社区
单片机/工控
帖子详情
在单片机编程中如何记住led的状态(亮度),只靠标志位
tianqi911
2018-06-13 12:47:40
有一个单片机问题,单按键,短按就是开,然后短按一次进入一个状态(一种亮度);长按2秒或以上就关机;
问题来了,再短按,开机还是长按结束之前的状态(亮度是之前的)。不使用rom,flash什么的,就是靠程序。
高人指点下吧,给点思路也是好的。
搞了一天了,没实现。
...全文
1190
9
打赏
收藏
在单片机编程中如何记住led的状态(亮度),只靠标志位
有一个单片机问题,单按键,短按就是开,然后短按一次进入一个状态(一种亮度);长按2秒或以上就关机; 问题来了,再短按,开机还是长按结束之前的状态(亮度是之前的)。不使用rom,flash什么的,就是靠程序。 高人指点下吧,给点思路也是好的。 搞了一天了,没实现。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tianqi911
2018-06-25
打赏
举报
回复
用case if-else 加标志位实现了。就是状态机。不用存储功能。就到哪一档了,靠标志位记住pwm的参数。
of123
2018-06-15
打赏
举报
回复
如果你坚持不能用 Flash 或 EPROM 这一类非易失性存储器的话,那就在关机时不要使芯片下电,仅仅关掉 LED 等显示性外设。 常见的设备关机时是使芯片下电的,轻触开机仅仅是采用上电自锁机制,保持供电。
of123
2018-06-15
打赏
举报
回复
看了好多遍,总算把楼主的问题看明白了。 楼主讨论的,实际上是关机(下电)后信息的保留问题。从信息论的角度看,其实他要保留的只不过是 1 bit 信息。 但是,这信息必须保留在非易失性存储器中。因为重新上点后,无论易失性存储器、寄存器还是程序状态,全都复位了。也就是说,无法保持原有的信息。你必须借助 Flash 或 EEPROM 这一类非易失性存储器保存最新的状态。 你可以在长按 2 秒的事件处理流程中,加入信息保存的操作。 如果你的芯片中集成的是 NOR Flash,那它是块擦除、字节写的。你可以用 2 比特表示当前的状态。 11 Null,也就是尚未写入信息。 01 初始状态。 00 高亮状态。 使用 2-bit,是因为我们需要附加的信息,即最后写入信息的位置。 每次写入时,找到 2-bit 序列的第一个 11,写入你的当前状态。当一块已经写满时,擦除块,在最低地址的最前 2-bit 写入状态。 上电后,查找最后一个不是 11 的 2-bit 单元。这就是你要找到的最新的关机前状态。 当然,你也可以选择每次都可能需要擦除块的方案,记录永远写在块的固定位置,例如开头。这样,你可以用 1-bit 信息:1 表示初始状态,0 表示高亮状态。 当你要写入时,如果新状态与原来写入的状态相同,就什么都不做。(其实上一个方案也可以这样做。) 如果原来是 1,现在要写 0,就直接写入。 如果原来是 0,现在要写 1,就擦除块。不用写,擦后就是 1。 此方案擦除的概率较高,会缩短 Flash 的寿命,同时也会使完成保存关机的时间加长。
笨狗先飞
2018-06-14
打赏
举报
回复
如果关机只是休眠模式的话,状态记在内存里就可以了, 如果关机会掉电的话,没有eeprom flashrom这些存储器的话,记忆肯定是丢失了.
of123
2018-06-14
打赏
举报
回复
我控制循环切换的方法,就是与 1 异或,自动从 1 变 1,再从 1 变 0。都不用标志变量,直接对控制寄存器中的位异或。
dceacho
2018-06-14
打赏
举报
回复
楼主问题没说明白 两个问题,你现在想要解决哪一个? 1. PWM控制LED亮度 2.掉电存储
tianqi911
2018-06-14
打赏
举报
回复
使用PWM做。
ckc
2018-06-13
打赏
举报
回复
关机的时候单片机是什么状态?如果是掉电之类的状态ram不丢数据的,那就用一个状态标记一下就行了 如果关机的时候ram丢 数据,那就只能写到eeprom之类的东西里
fly 100%
2018-06-13
打赏
举报
回复
用pwm控制的亮度?
单片机
pwm控制
led
亮度
原理图
本文主要为
单片机
pwm控制
led
亮度
原理图,希望对你的学习有所帮助。
基于51
单片机
pwm控制的呼吸灯程序
基于51
单片机
,通过定时器输出pwm波,全局变量控制占空比,达到
led
呼吸灯的目的。欢迎下载。
51
单片机
WS2812驱动
51
单片机
WS2812驱动
简单PWM调光,RGB颜色渐变
简单PWM调光,RGB颜色渐变.利用51
单片机
定时器产生方波输出,通过改变占空比实现对RGB三种颜色的灯调光,混合出各种颜色
Keil
单片机
动画教程
希望对您有帮助,请高抬贵手顶一个.谢谢~~~呵呵
单片机/工控
27,509
社区成员
28,797
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章