MSP430編程點(diǎn)滴
做了好一段時(shí)間的msp430單片機(jī)的編程,隨意想一點(diǎn)點(diǎn)東西寫(xiě)下來(lái),也算是給歲月增加一圈年輪。我做msp430的編程使用IAR,用C語(yǔ)言來(lái)說(shuō)。在調(diào)試和編程中經(jīng)常遇到一些個(gè)問(wèn)題,如下:
1、中斷
中斷是單片機(jī)很重要的一個(gè)問(wèn)題,也是難處理的一個(gè)問(wèn)題。在調(diào)試中經(jīng)常遇到問(wèn)題。
1)打開(kāi)了中斷開(kāi)關(guān),但是忘了寫(xiě)中斷服務(wù)程序,此時(shí)如有產(chǎn)生了中斷就會(huì)導(dǎo)致程序跑飛。此問(wèn)題遇到了幾次,都是 一時(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)為T(mén)xSendStatus進(jìn)行控制,這個(gè)變量最好聲明為volatile類(lèi)型。
2、一些有效的寫(xiě)法
1)老師教給我過(guò)一種串口解析的寫(xiě)作模式,非常不錯(cuò),主要的思想就是設(shè)計(jì)解析的標(biāo)志,依次核對(duì),保證了通信的可靠。暫時(shí)不貼代碼。
2)之前看到過(guò)老師的一段鍵盤(pán)消抖的程序,利用計(jì)數(shù)器來(lái)做的,感覺(jué)還是非常不錯(cuò)的。但是后來(lái)給另一個(gè)同學(xué)寫(xiě)的時(shí)候其實(shí)發(fā)現(xiàn)距離真正的理解還是有很大差距的。
在寫(xiě)代碼的時(shí)候真的要戒驕戒躁,有時(shí)候看似簡(jiǎn)單的東西其實(shí)并不會(huì)。
擴(kuò)展閱讀:?jiǎn)纹瑱C(jī)程序設(shè)計(jì)中的“分層思想”
編輯:admin 最后修改時(shí)間:2018-05-19