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