OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5483|回复: 8

在单片机编程中如何记住led的状态(亮度),只靠标志位

[复制链接]

23

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-11-11
在线时间
15 小时
发表于 2018-6-13 00:44:07 | 显示全部楼层 |阅读模式
1金钱
有一个单片机问题,单按键,短按就是开,然后短按一次进入一个状态(一种亮度);长按2秒或以上就关机;

问题来了,再短按,开机还是长按结束之前的状态(亮度是之前的)。不使用rom,flash什么的,就是靠程序。

高人指点下吧,给点思路也是好的。
搞了一天了,没实现。

最佳答案

查看完整内容[请看2#楼]

必须有存储器存储IO状态,否则肯定是不行的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-6-13 00:44:08 | 显示全部楼层
必须有存储器存储IO状态,否则肯定是不行的。
回复

使用道具 举报

3

主题

108

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2014-2-24
在线时间
257 小时
发表于 2018-6-13 09:02:56 | 显示全部楼层
这个问题好比老师写在黑板上的笔记,你不能记下来,擦除黑板后你要给我说出老师写了什么,你觉得这合理吗。。。
回复

使用道具 举报

23

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-11-11
在线时间
15 小时
 楼主| 发表于 2018-6-13 18:01:27 | 显示全部楼层
小小怪 发表于 2018-6-13 09:02
这个问题好比老师写在黑板上的笔记,你不能记下来,擦除黑板后你要给我说出老师写了什么,你觉得这合理吗。 ...

可以的。记忆分2种,带电和断电,flash rom什么的都是属于断电记忆。接着电源,但是开关机,属于带电记忆。别人已经做过了,我不会,所以才发问。
回复

使用道具 举报

3

主题

108

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2014-2-24
在线时间
257 小时
发表于 2018-6-14 10:37:23 | 显示全部楼层
tianqi911 发表于 2018-6-13 18:01
可以的。记忆分2种,带电和断电,flash rom什么的都是属于断电记忆。接着电源,但是开关机,属于带电记忆 ...

你这里所说的开关机是带电开关机的话,也就是MCU睡眠的问题了,关机->MCU进入深度睡眠模式,开机->唤醒MCU,睡眠前MCU的IO和RAM醒来后是不会改变的,可以实现你这个做法。
回复

使用道具 举报

23

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-11-11
在线时间
15 小时
 楼主| 发表于 2018-6-14 13:47:18 | 显示全部楼层
小小怪 发表于 2018-6-14 10:37
你这里所说的开关机是带电开关机的话,也就是MCU睡眠的问题了,关机->MCU进入深度睡眠模式,开机->唤醒MC ...

状态机方法可以实现。参考了一本书,老外写的 《状态机用C/cpp实现》,名字大概是这个。受到了刺激,才实验出来。基本原理:用状态机记录下case的值,开关机前后的led亮度就是一样的。
回复

使用道具 举报

31

主题

1951

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4417
金钱
4417
注册时间
2018-5-11
在线时间
922 小时
发表于 2018-6-14 14:00:21 来自手机 | 显示全部楼层
这个应该容易吧。stm32有后备存储器,将状态信息存储下来,只要不掉电都不会挥发的,下次开机后直接从后备存储器读状态信息并恢复不就行了么
回复

使用道具 举报

23

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-11-11
在线时间
15 小时
 楼主| 发表于 2018-6-15 17:43:05 | 显示全部楼层
warship 发表于 2018-6-14 14:00
这个应该容易吧。stm32有后备存储器,将状态信息存储下来,只要不掉电都不会挥发的,下次开机后直接从后备 ...

不用的。就是标志位,case,ifelse.
回复

使用道具 举报

1

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2018-4-29
在线时间
48 小时
发表于 2018-6-19 08:39:08 来自手机 | 显示全部楼层
用计数器试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 19:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表