MSP430編程點(diǎn)滴
做了好一段時(shí)間的msp430單片機(jī)的編程,隨意想一點(diǎn)點(diǎn)東西寫下來,也算是給歲月增加一圈年輪。我做msp430的編程使用IAR,用C語言來說。在調(diào)試和編程中經(jīng)常遇到一些個(gè)問題,如下:
1、中斷
中斷是單片機(jī)很重要的一個(gè)問題,也是難處理的一個(gè)問題。在調(diào)試中經(jīng)常遇到問題。
1)打開了中斷開關(guān),但是忘了寫中斷服務(wù)程序,此時(shí)如有產(chǎn)生了中斷就會(huì)導(dǎo)致程序跑飛。此問題遇到了幾次,都是 一時(shí)疏忽,造成了很大的麻煩。
2)外設(shè)與CPU是并行運(yùn)行的,采用中斷的方式控制外設(shè)時(shí),需要考慮主程序可能要等待外設(shè)中斷。
Uart_Send(CustomerCounter,CustomerCounterRow*(AddrMap[0]<<1),TXSEND_DATA);
while(TxSendStatus == TXSEND_DATA);
/ /清零
CustomerCounterRow = 0;
上邊的代碼表示了一個(gè)串口發(fā)送程序,因?yàn)榇诎l(fā)送的速度低于程序執(zhí)行的速度,并且要求在串口發(fā)送完成后進(jìn)行清零,所以可以采用一個(gè)狀態(tài)為TxSendStatus進(jìn)行控制,這個(gè)變量最好聲明為volatile類型。
2、一些有效的寫法
1)老師教給我過一種串口解析的寫作模式,非常不錯(cuò),主要的思想就是設(shè)計(jì)解析的標(biāo)志,依次核對(duì),保證了通信的可靠。暫時(shí)不貼代碼。
2)之前看到過老師的一段鍵盤消抖的程序,利用計(jì)數(shù)器來做的,感覺還是非常不錯(cuò)的。但是后來給另一個(gè)同學(xué)寫的時(shí)候其實(shí)發(fā)現(xiàn)距離真正的理解還是有很大差距的。
在寫代碼的時(shí)候真的要戒驕戒躁,有時(shí)候看似簡單的東西其實(shí)并不會(huì)。
擴(kuò)展閱讀:單片機(jī)程序設(shè)計(jì)中的“分層思想”
編輯:admin 最后修改時(shí)間:2018-05-19