有一个单片机问题,单按键。 短按就是开机,然后再短按就进入状态,短按一次进入一个状态(一种亮度);长按2s或以上就关机;
那么问题来了,要求,关机之后再开机,还是关机之前的状态(亮度)。不使用rom,flash什么的,就是靠程序的逻辑实现。
高人指点下吧,给点思路也是好的。非常感谢。
(比较穷 园豆少,博客园里高人多,请别计较)
case + ifelse, 数据结构里的循环队列(可能年长的搞单片机已经用到了这个技术,但是并没专门的提出来叫什么)。状态机实现。
不可能.关机之后再开机要记住状态.就必须持久化.
程序是运行在内存里.内存断电就没.必须要写到flash里.
重启之后才能读到.
状态机已经实现了。(就是不起状态机这个名字)很久之前就能实现了。我公司一个干了十几年的搞单片机的就已经实现过了。
@tianqi911: 你知道关机是什么意思吗?
如果你要的点一下"关机"键,把灯都关掉.代码继续跑.来实现.我不明白,你对关机的定义是什么意思.
@吴瑞祥: 单片机产品关机一般就2种,一是带电关机,就是不拔掉电源线;二是断电关机,就是拔掉电源线。同理,记忆就分2种,带电记忆,不带电记忆。现在这个实现的就是带电记忆。这个产品是一个单按键的LED台灯。
@tianqi911: 带电就不叫关机好吗...带电叫待机
——除非你的亮度只有一种状态。如果这能办到,硬件就卖不下去了。
状态机已经实现了。(就是不起状态机这个名字)很久之前就能实现了。我公司一个干了十几年的搞单片机的就已经实现过了(他觉的很简单让我自己去想)。就是省硬件存储器,所以才把逻辑写的更多。
@tianqi911: 你已经可以找到一条发财致富的路了,开n个实例就是n态的长度存储器。
@花飘水流兮: 就是一个单按键的led台灯,已经是产品了。5毛钱的8脚芯片。