從8/16位向32位圖形MCU升級的技巧
就在我的有關(guān)如何對16位PIC24微控制器進(jìn)行編程一書(shū)剛剛出版不久,我聽(tīng)說(shuō)Microchip公司一款新的32位PIC32微控制器已經(jīng)出爐。該產(chǎn)品使用的是MIPS內核,同時(shí)還聲稱(chēng)與16位的引腳以及PIC24系列產(chǎn)品外圍兼容。對我來(lái)說(shuō)這簡(jiǎn)直是太重要了!我立即起身去要到一個(gè)樣片并刷新基于GNU的MPLAB C32 C編譯器的beta拷貝。
本文引用地址:http://dyxdggzs.com/article/173681.htm我只是必須看一下這款新產(chǎn)品像什么。它仍然像是PIC MCU?它能不能在同樣的演示版上工作?畢竟,我已經(jīng)用C語(yǔ)言為PIC24寫(xiě)完了15章頗有價(jià)值的16位代碼和例程。長(cháng)話(huà)短說(shuō),在隨后的不到一個(gè)月的時(shí)間里,我不僅完成了代碼移植,而且已經(jīng)開(kāi)始利用所掌握的PIC32的經(jīng)驗書(shū)寫(xiě)一本新書(shū)了!
下面就是對一個(gè)月里所發(fā)生的事情的簡(jiǎn)要敘述。我喜歡從我遵守最好的設計準則并從閱讀數據頁(yè)開(kāi)始講述,如果說(shuō)我從頭到尾全面閱讀了數據頁(yè),那是撒謊!實(shí)際上我所做的與你做的完全一樣。打開(kāi)裝有以前PIC24項目的MPLAB集成開(kāi)發(fā)環(huán)境,點(diǎn)擊F10鍵立即創(chuàng )建。
二進(jìn)制數字
一長(cháng)串的錯誤列表出現在輸出窗口中。令我驚奇的是,所報道的所有錯誤都明顯地只與我的二進(jìn)制注釋(0b00000000),即C語(yǔ)言的一個(gè)非標準擴展有關(guān)。我試圖編譯我關(guān)于16位控制器一書(shū)前三章中的第一個(gè)代碼例程。這是一段非常簡(jiǎn)單的代碼,用C來(lái)說(shuō)明I/O,精確定時(shí)以及流控制(用于循環(huán))命令。我立刻決定將所有二進(jìn)制文字轉換成標準十六進(jìn)制的注釋(0x00)并觀(guān)看結果,瞧!編譯器和鏈接器馬上解析出代碼沒(méi)有任何錯誤。
感覺(jué)很幸運,我決定繼續“前進(jìn)”,并在一些實(shí)際的硬件――即Explorer 16演示板上運行代碼。我獲取了一個(gè)PIC32插件式模塊(PIM),并取代我的16位器件一書(shū)中普遍所用的PIC24 PIM。加電后我抱著(zhù)非常懷疑的態(tài)度觀(guān)察了幾秒鐘,竟然沒(méi)有“冒煙”!然后我取了一塊MPLAB Real ICE調試器和編程器連接到板子上。MPLAB IDE竟然很快識別出該工具并報告已發(fā)現PIC32連接到板子上。
在快速和自動(dòng)的固件升級后,我便立即按下編程鍵,隨后便是運行命令….但卻不工作!
我意識到板子上明顯有什么問(wèn)題,但一點(diǎn)也不像我所期望的那樣。這里需要解釋一下。在我的16位器件一書(shū)的前三章中,我利用C語(yǔ)言向讀者提供了如何生成“Hello World”這類(lèi)例子。其中,我講到傳統的實(shí)現方法是,向終端發(fā)送一個(gè)字符串,但這在嵌入式控制應用中是不現實(shí)或者不合適的。而是采用一個(gè)“有趣的”方案,即制作一排8個(gè)LED,當把板子拿在手上并揮動(dòng)時(shí),燈將有節奏地閃爍。它將顯示出有用的信息,這要歸功于眼睛的自然成像持久性。實(shí)際上對此進(jìn)行編碼要比描述更容易。
不同時(shí)鐘
事實(shí)上是,PIC32得到的I/O引腳和定時(shí)全部都是錯誤的。
評論