對LPC900系列單片機(jī)在射頻數(shù)傳模塊中的研究
2 軟件開發(fā)及調(diào)試
2.1 數(shù)傳模塊軟件基本結(jié)構(gòu)說明
射頻傳輸芯片CCl000具有3種狀態(tài):IDEL(空閑),RX(接收數(shù)據(jù)),TX(發(fā)送數(shù)據(jù))。整體上看,這是個具有3種狀態(tài)的狀態(tài)機(jī)模型,狀態(tài)之間的相互轉(zhuǎn)換見圖2。模塊主程序除了完成基本的芯片初始化工作外,程序的運(yùn)行主要是根據(jù)在CC1000的DCLK管腳產(chǎn)生的中斷,由中斷管理程序進(jìn)行狀態(tài)檢測及切換.
2.2 軟件調(diào)試開發(fā)中遇到的問題分析
該開發(fā)平臺采用的軟件開發(fā)環(huán)境為μVisionⅡ。該環(huán)境內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開發(fā)工具,可以完成從工程建立和管理、編譯、連接、目標(biāo)代碼的生成,軟件仿真,硬件仿真等完整的開發(fā)流程。即使不使用C語言而僅用匯編語言編程,其方便的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令開發(fā)進(jìn)度大大加快。但是其開發(fā)環(huán)境又有其自身的特色,需要對其中一些特殊的問題加以考慮。
2.2.1 程序中的關(guān)鍵字
在進(jìn)行程序設(shè)計時不能使用C51編譯器的關(guān)鍵字來定義變量名或者函數(shù)名。C51是區(qū)別大、小字母的,而關(guān)鍵字都是小寫字母。
一些函數(shù)定義從字面上看沒有問題,但在編譯時均指示錯誤,查看C51關(guān)鍵字有關(guān)目錄,查出原因在于變量參數(shù)data為其關(guān)鍵字,造成了編譯時的錯誤。
下面列出了一些常用的關(guān)鍵字,在程序設(shè)計時定義變量或函數(shù)名時應(yīng)特別注意避免使用:
_at_,alien,bdata,bit,code,data,idata,large,pdata,sbit,sfr,sfrl6,smal,task,using,xdata,priority。
2.2.2 BIT和SBIT的區(qū)別和全局變量、局部變量的使用
bit主要用位變量操作。sbit雖然也是用于位變量的操作,但其使用范圍較bit更廣泛。sbit不僅可以用于定義可位尋址寄存器的各個位,使我們可以對寄存器進(jìn)行位操作,sbit的另一個重要作用在于構(gòu)建類似于共用體數(shù)據(jù)類型,這種數(shù)據(jù)類型在LPC922與CC1000的串行/并行數(shù)據(jù)相互轉(zhuǎn)換中起著重要的作用。例如:
unsigned char bdata myDatas2;//定義一個可位尋址的全局變量
?。x變量的各個位
sbit cDatas0=myDatas2^O;
sbit cDatasl=myDatas2^l;
sbit cDatas2=myDatas2^2;
sbit cDatas3=myDatas2^3;
sbit eDatas4=myDatas2^4;
sbit eDatas5=myDatas2^5;
sbit cDatas6=myDatas2^6;
sbit cDatas7=myDatas2^7;
評論