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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于Atmega128嵌入式控制器的設計

          基于Atmega128嵌入式控制器的設計

          作者: 時間:2014-01-07 來源:網(wǎng)絡 收藏

            CAN總線接口如圖4。SJA1000的AD0~AD7連接到的PC口,CS連接到的PG3。PG3為0時CPU片外存儲器地址選中SJA1000,CPU通過地址可對SJA1000執(zhí)行讀/寫操作。SJA1000的RD、WE、ALE與的引腳相連,INT接Atmega128的PE7,Atmega128可通過中斷方式訪問SJA1000。

          基于Atmega128嵌入式控制器的設計

          (5)與PC機的串行通信

            考慮到智能控制節(jié)點要接收從RS232串口來的數(shù)據(jù),因而采用了Atmega128的串行口進行中斷接收,所用的引腳是PE0、PE1。通過MAX232進行數(shù)據(jù)傳輸。
          (6)脈沖輸入脈沖輸出

            由于輸入信號的多樣性,增加了PI/PO部分。
          3MicroC/OS—II的移植

            MicroC/OS—II移植到Atmega128上,需要修改OS_CPU.H,OS_CPU_A.S和OS_CPU_C.C三個與其相關(guān)的文件。其中OS—CPU.H主要完成的是數(shù)據(jù)類型、堆棧單位、堆棧增長方向的定義。相關(guān)的數(shù)據(jù)類型定義:

            typedefunsignedcharBOOLEAN;

            typedefunsignedcharINT8U;//無符號8位數(shù)

            typedefsignedcharINT8S;//帶符號8位數(shù)

            typedefunsignedintINTI6U;//無符號l6位數(shù)

            typedefsignedintINTl6S;//帶符號l6位數(shù)

            typedefunsignedlongINT32U;//無符號32位數(shù)

            typedefsignedlongINT32S;//帶符號32位數(shù)

            typedeffloatFP32;//單精度浮點數(shù)

            堆棧單位的定義:

          typedefunsignedcharOS_STK;//堆棧入口寬度為8位

            狀態(tài)寄存器的定義:

            typedefunsignedcharOS_CPU_SR;//定義狀態(tài)寄存器為8位

          堆棧增長方向的定義:

            #defineOS_STK_GROWTH1;//堆棧由高地址向低地址增長

            0S_CPU_C.C文件主要包括任務堆棧初始化和實現(xiàn)操作系統(tǒng)規(guī)定的幾個Hook函數(shù)。其中移植需要的Hook函數(shù)如下:

            OSTaskCreateHook();OSTaskDelHook()

            OSTaskldleHook();OSTaskStateHook()

            OSTaskSwHook();oSTCBInitHook()

            OSTimeTickHook()



          關(guān)鍵詞: Atmel AVR Atmega128 嵌入式控制器

          評論


          相關(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); })();