一个系统如果有一个界面,那么每次开机或者按下复位键后总要有一段LCD初始化和LOGO的东西,如果每次复位都重新执行的话,会很烦人,下面提两个思路解决这个问题:我们可以开机就向FLASH写一个标志,代表我现在开机了,然后根据这个标志来判断是不是要执行LOGO;大体过程如下:1、开机;2、判断FLASH的标志:1“是1则代表开机之后已经执行过这段了,跳过LOGO程序;2”是0则代表开机之后头一次执行到这里,LOGO还没执行,
一个系统如果有一个界面,那么每次开机或者按下复位键后总要有一段
LCD初始化和LOGO的东西,如果每次复位都重新执行的话,会很烦人,
下面提两个思路解决这个问题:
我们可以开机就向
FLASH写一个标志,代表我现在开机了,然后根据这个标志来判断是不是要执行LOGO;
大体过程如下:
1、开机;
2、判断FLASH的标志:
1“ 是1则代表开机之后已经执行过这段了,跳过LOGO程序;
2” 是0则代表开机之后头一次执行到这里,LOGO还没执行,所以执行LOGO,执行完写标志为1;
3、执行主程序;
4、安全关机:先清除标志,然后断电;*
*为了方便一点,可以辅以硬件来判断意外掉电,发现意外掉电就清除标志,这样,就免去了安全关机的步骤。
还有一个更加方便但不是对每个单片机都保险的方法:标志RAM法。
有的
MCU复位后RAM中数据保留,有的则RAM数据全部清除,对于数据不清除的MCU,可以用此法:上面方法把标志FLASH改为标志RAM就可以了,而且不用外部硬件就可以免去安全关机的步骤,因为一旦掉电,RAM中数据肯定清除。