單片機(jī)編程經(jīng)驗(yàn)(四)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
經(jīng)驗(yàn)之四、話說(shuō)指令冗余技術(shù) 前面有個(gè)朋友問(wèn)到指令冗余,按匠人的理解,指令冗余,就是動(dòng)作冗余。舉個(gè)例子,你要在某個(gè)輸出口上輸出一個(gè)高電平去驅(qū)動(dòng)一個(gè)外部器件,你如果只送一次“1”,那么,當(dāng)干擾來(lái)臨時(shí),這個(gè)“1”就有可能變成“0”了。正確的處理方式是,你定期刷新這個(gè)“1”。那么,即使偶然受了干擾,它也能恢復(fù)回來(lái)。除了i/o口動(dòng)作的冗余,匠人強(qiáng)烈建議大家在下面各方面也采用這種方法: 1、lcd的顯示。有時(shí),也許你會(huì)用一些lcd的專用驅(qū)動(dòng)芯片(如ht1621),這種芯片有個(gè)好處,即你只要將顯示數(shù)據(jù)傳送給它,它就會(huì)不斷的自動(dòng)掃描lcd。但是,你千萬(wàn)不要以為這樣就沒(méi)你啥事了。正確的處理方式是,要記得定期刷新送顯數(shù)據(jù)(即使顯示內(nèi)容沒(méi)有改變)。對(duì)于cpu中自帶lcd driver 的,也要定期刷新lcd ram?! ?、中斷使能標(biāo)志的設(shè)置。不要以為你在程序初始化段將中斷設(shè)置好就ok了。應(yīng)該在主程序中適當(dāng)?shù)牡胤蕉ㄆ谒⑿乱幌拢悦饽愕闹袛啾粧炱饋?lái)。 3、其它一些標(biāo)志字和參數(shù)寄存器(包括你自己定義的),也要記得常常刷新?! ?、其它一些你認(rèn)為有必要反復(fù)刷新的地方。