新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 對LPC900系列單片機(jī)在射頻數(shù)傳模塊中的研究

對LPC900系列單片機(jī)在射頻數(shù)傳模塊中的研究

作者: 時間:2011-06-28 來源:網(wǎng)絡(luò) 收藏

  在這里myDatas2既可以作為一個8位的變量使用,同時各個位也可以單獨(dú)使用,這在串/并數(shù)據(jù)轉(zhuǎn)換的場合是很有用的。特別需要注意的是,myDatas2這個可位尋址變量必須以全局變量的形式予以定義,如果定義為局部變量,編譯器也將產(chǎn)生錯誤。

  2.2.3 UART通訊和函數(shù)調(diào)用

  在進(jìn)行硬件仿真時,需要進(jìn)行LPC922與PC機(jī)之間的UART串行通信,這樣可以把有關(guān)調(diào)試信息直觀地顯示在超級終端上。初期一直存在無法通信問題,為此調(diào)試了有關(guān)串口讀寫的底層代碼。

  原來的與PC機(jī)串口通訊寫程序如下:

  原來的UART寫字符串函數(shù)writeln是通過調(diào)用putchar函數(shù)來進(jìn)行的,但在硬件仿真時一直出錯,當(dāng)把這部分程序單獨(dú)分離出來進(jìn)行仿真時,卻未出現(xiàn)問題。后來分析考慮推想可能原因是:C51由于內(nèi)部堆??臻g的限制,在函數(shù)調(diào)用時,提供的是一種壓縮棧,每個過程被給定一個空間用于存放局部變量,過程中的每個變量都存放在這個空間的固定位置,當(dāng)多重調(diào)用或者遞歸調(diào)用這個過程時,會導(dǎo)致變量被覆蓋而出錯。此時應(yīng)把該函數(shù)定義為可重入函數(shù),但是再入函數(shù)因?yàn)橐鲆恍┨厥獾奶幚?,一般運(yùn)行起來都比較慢。在這個程序中寫UART操作對函數(shù)putchar調(diào)用時,程序的其他部分也在調(diào)用該函數(shù),覆蓋了傳遞給putchar函數(shù)的參數(shù),導(dǎo)致程序運(yùn)行出錯。于是對程序做了修改如下:

  修改過的程序與原來程序差別在于不再進(jìn)行putchar函數(shù)調(diào)用,而直接進(jìn)行有關(guān)操作。修改后再進(jìn)行硬件仿真,問題得到了很好的解決。由此可以看到,由于內(nèi)部堆棧資源有限,在程序設(shè)計(jì)時當(dāng)發(fā)現(xiàn)程序運(yùn)行異常時,應(yīng)特別注意函數(shù)調(diào)用帶來的問題。當(dāng)然出現(xiàn)這個問題還可能會有其他方面的原因。

  2.2.4 看門狗

  當(dāng)系統(tǒng)處于一些比較惡劣環(huán)境(工控、底層采集等),如果系統(tǒng)的抗干擾沒有做好,則容易出現(xiàn)死機(jī)現(xiàn)象,這時硬件電路并沒有損壞,只是內(nèi)部程序運(yùn)行出現(xiàn)錯誤,必須復(fù)位才能恢復(fù),這時可用看門狗來解決問題??撮T狗定時器子系統(tǒng)可通過復(fù)位使系統(tǒng)從錯誤的操作中恢復(fù)。但是任何事情都有其兩面性,當(dāng)軟件沒能在定時器溢出之前將其清零或者重新賦值,看門狗定時器就會導(dǎo)致系統(tǒng)產(chǎn)生一次復(fù)位,從而產(chǎn)生錯誤。

  仿真開發(fā)板上采用的是LPC922,因此對其復(fù)位時的有關(guān)看門狗的寄存器進(jìn)行了具體分析,最后發(fā)現(xiàn)問題是由于沒有在一定的時間內(nèi)及時對看門狗進(jìn)行重新的配置參數(shù)造成的。通過對WDCON,WDL,WFEED1,WFEED2這4個與看門狗有關(guān)的寄存器進(jìn)行合理配置,很好地解決了程序復(fù)位問題。

  2.2.5 讀操作和CC1000寄存器讀寫

  通常也具有51單片機(jī)的一些特點(diǎn),在使用時也應(yīng)注意。當(dāng)其I/O口作為輸入口使用時,有2種工作方式,即讀端口和讀引腳。讀端口實(shí)際上并不從外部讀入數(shù)據(jù),而只是把端口鎖存器的內(nèi)容讀到內(nèi)部總線,經(jīng)過某種運(yùn)算或者變換后,再寫回到端口鎖存器。

  讀引腳時才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。這時要先通過指令,把端口鎖存器置1,然后再進(jìn)行讀引腳操作,否則就可能讀錯。在LPC922讀寫CC1000寄存器過程中涉及到有關(guān)讀引腳操作問題,應(yīng)區(qū)別這2種工作方式。

  3 結(jié)語

  在本文介紹的開發(fā)平臺上利用LPC900單片機(jī)實(shí)現(xiàn)了根據(jù)不同的應(yīng)用需要對上CC1000寄存器進(jìn)行有效的參數(shù)讀寫配置控制,初步達(dá)到了設(shè)計(jì)要求。對軟件開發(fā)中所遇到問題的分析討論,在LPC900單片機(jī)的應(yīng)用開發(fā)中也具有較廣泛的實(shí)際意義。



上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉