一個(gè)系統(tǒng)如果有一個(gè)界面,那么每次開機(jī)或者按下復(fù)位鍵后總要有一段LCD初始化和LOGO的東西,如果每次復(fù)位都重新執(zhí)行的話,會(huì)很煩人,下面提兩個(gè)思路解決這個(gè)問題:我們可以開機(jī)就向FLASH寫一個(gè)標(biāo)志,代表我現(xiàn)在開機(jī)了,然后根據(jù)這個(gè)標(biāo)志來判斷是不是要執(zhí)行LOGO;大體過程如下:1、開機(jī);2、判斷FLASH的標(biāo)志:1“是1則代表開機(jī)之后已經(jīng)執(zhí)行過這段了,跳過LOGO程序;2”是0則代表開機(jī)之后頭一次執(zhí)行到這里,LOGO還沒執(zhí)行,
一個(gè)系統(tǒng)如果有一個(gè)界面,那么每次開機(jī)或者按下復(fù)位鍵后總要有一段
LCD初始化和LOGO的東西,如果每次復(fù)位都重新執(zhí)行的話,會(huì)很煩人,
下面提兩個(gè)思路解決這個(gè)問題:
我們可以開機(jī)就向
FLASH寫一個(gè)標(biāo)志,代表我現(xiàn)在開機(jī)了,然后根據(jù)這個(gè)標(biāo)志來判斷是不是要執(zhí)行LOGO;
大體過程如下:
1、開機(jī);
2、判斷FLASH的標(biāo)志:
1“ 是1則代表開機(jī)之后已經(jīng)執(zhí)行過這段了,跳過LOGO程序;
2” 是0則代表開機(jī)之后頭一次執(zhí)行到這里,LOGO還沒執(zhí)行,所以執(zhí)行LOGO,執(zhí)行完寫標(biāo)志為1;
3、執(zhí)行主程序;
4、安全關(guān)機(jī):先清除標(biāo)志,然后斷電;*
*為了方便一點(diǎn),可以輔以硬件來判斷意外掉電,發(fā)現(xiàn)意外掉電就清除標(biāo)志,這樣,就免去了安全關(guān)機(jī)的步驟。
還有一個(gè)更加方便但不是對(duì)每個(gè)單片機(jī)都保險(xiǎn)的方法:標(biāo)志RAM法。
有的
MCU復(fù)位后RAM中數(shù)據(jù)保留,有的則RAM數(shù)據(jù)全部清除,對(duì)于數(shù)據(jù)不清除的MCU,可以用此法:上面方法把標(biāo)志FLASH改為標(biāo)志RAM就可以了,而且不用外部硬件就可以免去安全關(guān)機(jī)的步驟,因?yàn)橐坏┑綦�,RAM中數(shù)據(jù)肯定清除。