新聞中心

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

基于Atmega128嵌入式控制器的設(shè)計(jì)

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

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

基于Atmega128嵌入式控制器的設(shè)計(jì)

(5)與PC機(jī)的串行通信

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

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

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

  typedefunsignedcharBOOLEAN;

  typedefunsignedcharINT8U;//無(wú)符號(hào)8位數(shù)

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

  typedefunsignedintINTI6U;//無(wú)符號(hào)l6位數(shù)

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

  typedefunsignedlongINT32U;//無(wú)符號(hào)32位數(shù)

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

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

  堆棧單位的定義:

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

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

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

堆棧增長(zhǎng)方向的定義:

  #defineOS_STK_GROWTH1;//堆棧由高地址向低地址增長(zhǎng)

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

  OSTaskCreateHook();OSTaskDelHook()

  OSTaskldleHook();OSTaskStateHook()

  OSTaskSwHook();oSTCBInitHook()

  OSTimeTickHook()



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

評(píng)論


相關(guān)推薦

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

關(guān)閉