<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 從8/16位向32位圖形MCU升級(jí)的技巧

          從8/16位向32位圖形MCU升級(jí)的技巧

          作者: 時(shí)間:2009-07-06 來(lái)源:網(wǎng)絡(luò) 收藏

          是我開(kāi)始嘗試移植第12章中代碼的時(shí)候了:“黑屏”確實(shí)是一件有趣的事情。用PIC24,我能夠演示SPI端口是如何的簡(jiǎn)單,只需要三只電阻器,幾個(gè)中斷,以及一些創(chuàng)新就可以產(chǎn)生一個(gè)復(fù)合視頻信號(hào),特別是可以將任意的電視機(jī)轉(zhuǎn)換成單色顯示器。要產(chǎn)生一個(gè)視頻信號(hào),需要中斷代碼與外設(shè)之間的精密協(xié)調(diào)。實(shí)際上,因?yàn)榧幢闶窃谳敵龆〞r(shí)上只差一個(gè)時(shí)鐘周期,在顯示器屏幕的左側(cè)就會(huì)產(chǎn)生可見(jiàn)的抖動(dòng)(所有的豎直線都變得像鋸齒一樣),故訓(xùn)練結(jié)果將是用于中斷“決策”的一個(gè)理想放大鏡,這是PIC架構(gòu)傳統(tǒng)上一直出眾的特性。然而不幸的是,根據(jù)定義,指令預(yù)取和存儲(chǔ)器緩存機(jī)制都是非確定的。

          本文引用地址:http://www.ex-cimer.com/article/173681.htm


          經(jīng)過(guò)一段苦思冥想,我最終明白了。我在試圖做不應(yīng)該做的事情!32位內(nèi)核是為了提高性能而設(shè)計(jì)的。其使命是C代碼的運(yùn)行盡可能地快,而把實(shí)時(shí)嚴(yán)格的工作留給外設(shè)。特別是,DMA外設(shè)是一個(gè)非常好的工具。


          最終,我想出了如何利用定時(shí)器直接產(chǎn)生復(fù)合視頻信號(hào),并將DMA數(shù)據(jù)傳輸同步到SPI端口的方法。這種新方案提供了確定性的定時(shí),而且還將CPU的開(kāi)銷減少了大約25%到5%。幾個(gè)小時(shí)工作后,我完成了2D和3D視頻演示并運(yùn)行,還加上了動(dòng)畫,從高清顯示一直到單顯VGA(實(shí)例見(jiàn)圖3和圖4)。

          圖3:用PIC32所產(chǎn)生的3D圖形。
          圖3:用PIC32所產(chǎn)生的3D。

          圖4:用PIC32所產(chǎn)生的不規(guī)則幾何圖形。
          圖4:用PIC32所產(chǎn)生的不規(guī)則幾何。


          開(kāi)發(fā)PIC32很快變成一件令人上癮的事情,結(jié)果是很好的回報(bào),那就是讓我完成了一本有關(guān)32位器件新書的寫作之旅!PIC32與早先的16-bit PIC24微控制器的兼容性是那樣的無(wú)縫。這款新的MIPS內(nèi)核的速度和性能給我留下了深刻的印象,大大擴(kuò)展了任何先前的PIC 都無(wú)法實(shí)現(xiàn)的應(yīng)用范圍。

          表1:PIC24F AD1CON寄存器的并排比較。
          表1:PIC24F AD1CON寄存器的并排比較。


          上一頁(yè) 1 2 3 4 下一頁(yè)

          關(guān)鍵詞: 技巧 升級(jí) MCU 圖形 8/16位向

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();