在单片机编程中,如果在不使用操作系统的情况下同时执行多个任务,可能会遇到下面这些情况:
- 一个任务的执行时间过长,导致其他任务无法及时执行
- 在一些任务中大量使用 delay() 等函数进行软件延时,这些延时函数占用过多时间,影响其他任务的执行
- 一些复杂任务的程序逻辑不清晰,不便于以后对程序进行维护,或添加新功能
本文介绍的有限状态机,可以做到将一个耗时较长的复杂任务分解为多个简单任务,同时使代码逻辑更加清晰,从而解决上述问题。
目录:
在单片机编程中,如果在不使用操作系统的情况下同时执行多个任务,可能会遇到下面这些情况:
本文介绍的有限状态机,可以做到将一个耗时较长的复杂任务分解为多个简单任务,同时使代码逻辑更加清晰,从而解决上述问题。
目录:
昨晚上课时,老师说:“用单片机检测按键的双击,看似简单,但实现起来,需要一点小技巧。”
这句话引起了我的兴趣,我打算自己尝试一下。经过折腾,算是解决了这个问题。
这段时间,我们班、科协和院学生会都组织了摇摇棒制作活动。大概是因为摇摇棒是一项容易制作,而且比较好玩的电子 DIY.
由于摇摇棒里的单片机可以编程,所以,可以通过修改程序,使摇摇棒又更多功能。下面是我的一些想法:
加装光敏电阻,或直接通过 LED 获取周围环境亮度,并根据环境亮度自动调节摇摇棒的亮度。
将 LED 用做光线传感器的方法,《爱上单片机》上有简单的介绍。
这是我和我的同学胡春宇、王哲强正在一起做的一个电子小制作。不过,外形很不好看。
上学期,在科协,学长给了我们一份他搜集到的 DIY 项目,供我们参考并制作。我发现里面的进度条时钟挺漂亮,就和另外两位同学商量,做出一个具有类似功能的时钟。
原先的时钟,是用电动机+蓝色薄膜片制成的。为了增加功能,我们决定用单片机控制。
起初的想法挺多,想到了用液柱,或者荧光管做进度条。可是液柱高低的控制,似乎有点复杂,同时也没有找到合适的荧光管,只好用效果不是很好的LED。
外观上,本想做得十分精简,从正面只能看到进度条,没有多余的按键,电路等全部隐藏在进度条下。这一点最后也因制作过程复杂而放弃。
功能上,我们想出了一大堆,保留下来的也没多少。
所以经过不断地简化,我们的进度条时钟准备做成这样: