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

編輯:admin 最后修改時間:2018-05-19