經驗之四、話說指令冗余技術 前面有個朋友問到指令冗余,按匠人的理解,指令冗余,就是動作冗余。舉個例子,你要在某個輸出口上輸出一個高電平去驅動一個外部器件,你如果只送一次“1”,那么,當干擾來臨時,這個“1”就有可能變成“0”了。正確的處理方式是,你定期刷新這個“1”。那么,即使偶然受了干擾,它也能恢復回來。除了i/o口動作的冗余,匠人強烈建議大家在下面各方面也采用這種方法: 1、lcd的顯示。有時,也許你會用一些lcd的專用驅動芯片(如ht1621),這種芯片有個好處,即你只要將顯示數據傳送給它,它就會不斷的自動掃描lcd。但是,你千萬不要以為這樣就沒你啥事了。正確的處理方式是,要記得定期刷新送顯數據(即使顯示內容沒有改變)。對于cpu中自帶lcd driver 的,也要定期刷新lcd ram?! ?、中斷使能標志的設置。不要以為你在程序初始化段將中斷設置好就ok了。應該在主程序中適當的地方定期刷新一下,以免你的中斷被掛起來?! ?、其它一些標志字和參數寄存器(包括你自己定義的),也要記得常常刷新。 4、其它一些你認為有必要反復刷新的地方。