




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第1章 嵌入式系統(tǒng)概述1嵌入式系統(tǒng)定義:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。2嵌入式處理器分類:嵌入式微處理器;嵌入式微控制器;嵌入式DSP處理器;嵌入式片上系統(tǒng)(SOC)。3常見嵌入式操作系統(tǒng)嵌入式Linux、Win CE、VxWorks、Nucleus、eCos、C/OS-II、uITRON、QNX4嵌入式實時操作系統(tǒng)的特性:切換時間和中斷延遲時間確定 優(yōu)先級中斷和調(diào)度 搶占式調(diào)度 同步 第3章 ARM7體系結(jié)構(gòu)1ARM處理器為32位RISC芯片。 RISC處理器的特點:大的、統(tǒng)一的寄存器文件;裝載/保存結(jié)
2、構(gòu),數(shù)據(jù)處理 操作只針對寄存器的內(nèi)容,而不直接對存儲器進行操作簡單的尋址模式統(tǒng)一和固定長度的指令域,簡化了指令的譯碼2ARM7TDMI-S含義:T-支持高密度16位的Thumb指令集D-支持片上調(diào)試M-支持64位乘法I-支持EmbededICE觀察硬件S-ARM7TDMI 的可綜合(synthesizable)版本(軟核)3ARM7TDMI的流水線分3級,分別為:取指譯碼執(zhí)行流水線上各指令的地址流水線工位描述ARM指令集Thumb指令集PCPC取指指令從存儲器中取出PC-4PC-2譯碼對指令使用的寄存器進行譯碼PC-8PC-4執(zhí)行從寄存器組中讀出寄存器,執(zhí)行移位和ALU操作,寄存器被寫回到寄存
3、器組中4計算機結(jié)構(gòu)說明:“馮諾依曼” 結(jié)構(gòu):把代碼作為一種特殊的數(shù)據(jù)來操作,指令總線和數(shù)據(jù)總線及其存儲區(qū)域是統(tǒng)一的;“哈佛”結(jié)構(gòu):指令總線和數(shù)據(jù)總線及其存儲區(qū)是分開、獨立的。5ARM7TDMI兩種操作狀態(tài):ARM狀態(tài):32位,這種狀態(tài)下執(zhí)行的是字方式的ARM指令;Thumb狀態(tài):16位,這種狀態(tài)下執(zhí)行半字方式的Thumb指令。6處理器狀態(tài)切換;從Arm狀態(tài)切換到Thumb狀態(tài) LDR R0,=Lable+1 BX R0;從Thumb狀態(tài)切換到ARM狀態(tài) LDR R0,=Lable BX R07.處理器模式用戶模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式處理器模式說明備注
4、 用戶(usr)正常程序工作模式不能直接切換到其它模式 系統(tǒng)(sys)用于支持操作系統(tǒng)的特權(quán)任務(wù)等與用戶模式類似,但具有可以直接切換到其它模式等特權(quán) 快中斷(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時進入此模式 中斷(irq)用于通用中斷處理IRQ異常響應(yīng)時進入此模式 管理(svc)操作系統(tǒng)保護代碼系統(tǒng)復(fù)位和軟件中斷響應(yīng)時進入此模式 中止(abt)用于支持虛擬內(nèi)存和/或存儲器保護在ARM7TDMI沒有大用處 未定義(und)支持硬件協(xié)處理器的軟件仿真未定義指令異常響應(yīng)時進入此模式8. ARM狀態(tài)各模式下的寄存器A. 其中R0R7為未分組的寄存器,也就是說對于任何處理器模式,這些寄存器都
5、對應(yīng)于相同的32位物理寄存器。B. 寄存器R8R12有兩個分組的物理寄存器。一個用于除FIQ模式之外的所有寄存器模式,另一個用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度。C. 寄存器R13常作為堆棧指針(SP)。在ARM指令集當(dāng)中,沒有以特殊方式使用R13的指令或其它功能,只是習(xí)慣上都這樣使用。但是在Thumb指令集中存在使用R13的指令D. R14為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個特殊功能:l 在每種模式下,模式自身的R14版本用于保存子程序返回地址;l 當(dāng)發(fā)生異常時,將R14對應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一個小的固定偏移量)。E. 寄存器R15為程序
6、計數(shù)器(PC),它指向正在取指的地址??梢哉J(rèn)為它是一個通用寄存器,但是對于它的使用有許多與指令相關(guān)的限制或特殊情況。9. R15的限制正常操作時,從R15讀取的值是處理器正在取指的地址,即當(dāng)前正在執(zhí)行指令的地址加上8個字節(jié)(兩條ARM指令的長度)。由于ARM指令總是以字為單位,所以R15寄存器的最低兩位總是為0。10.程序狀態(tài)寄存器(CPSR)M4:0模式M4:0模式10000用戶10111中止10001快中斷11011未定義10010中斷11111系統(tǒng)10011管理11. 異常入口/出口匯總異?;蛉肟诜祷刂噶钪暗臓顟B(tài)備注ARM R14_xThumb R14_xBLMOV PC,R14PC+
7、4PC+2 此處PC為BL,SWI,為定義的指令取指或預(yù)取指中止指令的地址SWIMOVS PC,R14_svcPC+4PC+2未定義的指令MOVS PC,R14_undPC+4PC+2預(yù)取指中止SUBS PC,R14_abt,#4PC+4PC+4快中斷SUBS PC,R14_fiq,#4PC+4PC+4此處PC為由于FIQ或IRQ占先而沒有被執(zhí)行的指令的地址中斷SUBS PC,R14_irq,#4PC+4PC+4數(shù)據(jù)中止SUBS PC,R14_abt,#8PC+8PC+8此處PC為產(chǎn)生數(shù)據(jù)中止的裝載或保存指令的地址。 復(fù)位無復(fù)位時保存在R14_svc中的值不可預(yù)知。 中斷處理代碼的開始部分和退
8、出部分SUB LR,LR,#4;計算返回地址STMFD SP!,R0-R3,LR;保存使用到的寄存器. . .LDMFD SP!,R0-R3,PC;中斷返回12. 異常向量地址異常類型進入時的模式進入時I的狀態(tài)進入時F的狀態(tài)0x0000 0000復(fù)位管理禁止禁止0x0000 0004未定義指令未定義IF0x0000 0008軟件中斷管理禁止F0x0000 000C中止(預(yù)?。┲兄笽F0x0000 0010中止(數(shù)據(jù))中止IF0x0000 0014保留保留0x0000 0018IRQ中斷禁止F0x0000 001CFIQ快中斷禁止禁止13.復(fù)位流程:l 強制M4:0變?yōu)閎10011(管理模式);
9、l 置位CPSR中的I和F位;l 清零CPSR中的T位;l 強制PC從地址0x00開始對下一條指令進行取指;l 返回到ARM狀態(tài)并恢復(fù)執(zhí)行 。14存儲器格式小端存儲器系統(tǒng):在小端格式中,高位數(shù)字存放在高位字節(jié)中。因此存儲器系統(tǒng)字節(jié)0連接到數(shù)據(jù)線70。 大端存儲器系統(tǒng):在大端格式中,高位數(shù)字存放在低位字節(jié)中。因此存儲器系統(tǒng)字節(jié)0連接到數(shù)據(jù)線3124。 第4章 ARM7TDMI(-S)指令系統(tǒng)1堆棧尋址 滿遞增:堆棧向上增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最高地址。指令如LDMFA、STMFA等; 空遞增:堆棧向上增長,堆棧指針指向堆棧上的第一個空位置。指令如LDMEA、STMEA等; 滿遞減:堆棧
10、向下增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最低地址。指令如LDMFD、STMFD等; 空遞減:堆棧向下增長,堆棧指針向堆棧下的第一個空位置。指令如LDMED、STMED等。 2.書寫格式AREAExample1,CODE,READONLY ;聲明代碼段Example1 ENTRY ;標(biāo)識程序入口 CODE32 ;聲明32位ARM指令START MOVR0,#0 ;設(shè)置參數(shù) MOVR1,#10LOOPBLADD_SUB ;調(diào)用子程序ADD_SUB BLOOP ;跳轉(zhuǎn)到LOOPADD_SUB ADDSR0,R0,R1 ;R0 = R0 + R1 MOVPC,LR ;子程序返回 END3.指令格式 S
11、, opcode:指令助記符;cond:執(zhí)行條件;S:是否影響CPSR寄存器的值;Rd:目標(biāo)寄存器; Rn:第1個操作數(shù)的寄存器;operand2:第2個操作數(shù);4.條件碼CMPR0,R1 ;R0與R1比較ADDHIR0,R0,#1 ;若R0R1,則R0=R0+1ADDLSR1,R1,#1 ;若R01,則R1=R1+15.指令LDR Rd,addressing STR Rd, addressing LDMmode Rn!,reglist STMmode Rn!,reglist MOV Rd,operand2 ADD Rd, Rn, operand2 SUB Rd, Rn, operand2RS
12、B Rd, Rn, operand2ADC Rd, Rn, operand2AND Rd, Rn, operand2ORR Rd, Rn, operand2EOR Rd, Rn, operand2BIC Rd, Rn, operand2CMP Rn, operand2TST Rn, operand2MUL Rd,Rm,RsB labelBL label啟動代碼分析: SVC_STACK_LEGTH EQU 0FIQ_STACK_LEGTH EQU 0IRQ_STACK_LEGTH EQU 256ABT_STACK_LEGTH EQU 0UND_STACK_LEGTH EQU 0NoInt EQ
13、U 0x80NoFIQ EQU 0x40USR32Mode EQU 0x10SVC32Mode EQU 0x13SYS32Mode EQU 0x1fIRQ32Mode EQU 0x12FIQ32Mode EQU 0x11 IMPORT _use_no_semihosting_swi;The imported labels IMPORT FIQ_Exception IMPORT _main IMPORT TargetResetInit ;The emported labels EXPORT bottom_of_heap EXPORT StackUsr EXPORT Reset EXPORT _u
14、ser_initial_stackheap CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0xb9205f80 LDR PC, PC, #-0xff0 LDR PC, FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD UndefinedSWI_Addr DCD SoftwareInterruptPr
15、efetchAddr DCD PrefetchAbortDataAbortAddr DCD DataAbortNouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_HandlerUndefined B UndefinedSoftwareInterrupt CMP R0, #4 LDRLO PC, PC, R0, LSL #2 MOVS PC, LRSwiFunction DCD IRQDisable ;0 DCD IRQEnable ;1 DCD FIQDisable ;2 DCD FIQEnable ;3IRQDisable MRS R0, SPSR ORR R
16、0, R0, #NoInt MSR SPSR_c, R0 MOVS PC, LRIRQEnable MRS R0, SPSR BIC R0, R0, #NoInt MSR SPSR_c, R0 MOVS PC, LRFIQDisable MRS R0, SPSR ORR R0, R0, #NoFIQ MSR SPSR_c, R0 MOVS PC, LRFIQEnable MRS R0, SPSR BIC R0, R0, #NoFIQ MSR SPSR_c, R0 MOVS PC, LRPrefetchAbort B PrefetchAbortDataAbort B DataAbortFIQ_H
17、andler STMFD SP!, R0-R3, LR BL FIQ_Exception LDMFD SP!, R0-R3, LR SUBS PC, LR, #4InitStack MOV R0, LR MSR CPSR_c, #0xd3 LDR SP, StackSvc MSR CPSR_c, #0xd2 LDR SP, StackIrq MSR CPSR_c, #0xd1 LDR SP, StackFiq MSR CPSR_c, #0xd7 LDR SP, StackAbt MSR CPSR_c, #0xdb LDR SP, StackUnd MSR CPSR_c, #0xdf LDR S
18、P, =StackUsr MOV PC, R0ResetInit BL InitStack BL TargetResetInit B _main_user_initial_stackheap LDR r0,=bottom_of_heap MOV pc,lrStackSvc DCD SvcStackSpace + (SVC_STACK_LEGTH - 1)* 4StackIrq DCD IrqStackSpace + (IRQ_STACK_LEGTH - 1)* 4StackFiq DCD FiqStackSpace + (FIQ_STACK_LEGTH - 1)* 4StackAbt DCD
19、AbtStackSpace + (ABT_STACK_LEGTH - 1)* 4StackUnd DCD UndtStackSpace + (UND_STACK_LEGTH - 1)* 4 AREA MyStacks, DATA, NOINIT, ALIGN=2SvcStackSpace SPACE SVC_STACK_LEGTH * 4 IrqStackSpace SPACE IRQ_STACK_LEGTH * 4 FiqStackSpace SPACE FIQ_STACK_LEGTH * 4 AbtStackSpace SPACE ABT_STACK_LEGTH * 4 UndtStack
20、Space SPACE UND_STACK_LEGTH * 4 AREA Heap, DATA, NOINITbottom_of_heap SPACE 1 AREA Stacks, DATA, NOINITStackUsr要點:1. 總體結(jié)構(gòu)與符號定義2. 異常向量表3. B與LDR指令的區(qū)別問題4. 為什么要使用地址轉(zhuǎn)義符5. 堆棧初始化6. 中斷處理程序的預(yù)處理7. 程序出口第5章 LPC2000系列ARM硬件結(jié)構(gòu)1存儲器尋址3PLL時鐘相位頻率檢測CCO102P分頻M分頻0101FOSCFCCOFCLKFCCO / 2PFCCO / (2P*M)PLL控制寄存器(PLLCON):PLL配
21、置寄存器(PLLCFG)PLL狀態(tài)寄存器(PLLSETA):PLL饋送寄存器(PLLFEED):回路鎖定后:FOSC = FCCO / (2P M) FCLK = FOSC M必須滿足的條件:FOSC范圍:10MHz25MHz; FCCLK范圍:10MHz60MHz; FCCO范圍:156MHz320MHz;4VPB分頻器VPB分頻寄存器(VPBDIV):示例:PLLCON = 1;VPBDIV = 2;PLLCFG=(Fcclk/Fosc)-1)|(05);PLLFEED = 0xaa;PLLFEED = 0x55;while(PLLSTAT & (1 10) = 0);PLLCON = 3
22、;PLLFEED = 0xaa;PLLFEED = 0x55;6存儲器映射存儲器映射控制寄存器描述存儲器映射控制重新映射前后地址轉(zhuǎn)換前內(nèi)核地址總線值MEMMAP值轉(zhuǎn)換后存儲器地址總線值0x000000000x0000003F000x7FFFE0000x7FFFE03F010x000000000x0000003F100x400000000x4000003F110x800000000x8000003F0x000000400xFFFFFFFF任意對應(yīng)不變7存儲器加速模塊MAM控制寄存器(MAMCR)MAM定時寄存器(MAMTIM) 當(dāng)改變MAM定時值時,必須先將MAMCR設(shè)置為0關(guān)閉MAM,然后將新
23、值寫入MAMTIM。最后將需要的操作模式的對應(yīng)值(1或2)寫入MAMCR,再次打開MAM; 對于低于20MHz的系統(tǒng)時鐘,MAMTIM設(shè)定為001,將Flash訪問時間設(shè)定為1CCLK ;對于20MHz到40MHz之間的系統(tǒng)時鐘,建議將Flash訪問時間設(shè)定為2CCLK;高于40MHz的系統(tǒng)時鐘,建議使用3CCLK。MAMCR = 0;MAMTIM = 2;MAMCR = 2;8外部存儲器控制器l EMC模塊支持4個獨立配置的存儲器組,每個存儲器組的總線寬度可設(shè)置為8、16或者32位,但是同一個存儲器組的器件必須寬度相同。l 每個存儲器組最大支持16MB尋址空間。l 支持字節(jié)定位讀取。l 地址
24、輸出線是A23:0,其中地址位A25:24用于4個存儲器組的譯碼(CS3:0)。Bank地址范圍配置寄存器00x8000 00000x80FF FFFFBCFG010x8100 00000x81FF FFFFBCFG120x8200 00000x82FF FFFFBCFG230x8300 00000x83FF FFFFBCFG3接口引腳描述引腳名類型引腳描述D31:0輸入/輸出外部存儲器數(shù)據(jù)線A23:0輸出外部存儲器地址線OE輸出輸出使能信號,低有效BLS輸出字節(jié)定位選擇信號,低有效WE輸出寫使能信號,低有效CS3:0輸出芯片選擇信號,低有效存儲器組配置寄存器03(BCFG03):位23:16
25、15:11109:543:0功能保留WST2RBLEWST1保留IDCY位31:3029:2827262524功能ATMWBMWPWPERRBUSERR IDCY:在兩個存儲器組之間切換訪問時,為了避免器件間的總線競爭,需要插入空閑的CCLK周期,該域控制著這個周期數(shù)。計算公式為:空閑CCLK周期數(shù) IDCY +1;(IDCY的復(fù)位值為15) WST1:一些慢速的外部存儲器可能不能適應(yīng)EMC最高速度的讀操作,所以需要在讀周期中插入若干個空閑等待周期,以降低讀操作的速度。該域控制著讀周期中插入的空閑CCLK周期數(shù)。計算公式為:讀操作周期長度 WST1 + 3;(WST1的復(fù)位值為15) RBLE
26、:如果外部存儲器的總線寬度為16或32位,那么讀寫操作是對總線上的2個或4個字節(jié)的數(shù)據(jù)同時進行的。某些存儲器允許對總線上的某幾個字節(jié)進行獨立的讀寫操作,而不影響其它字節(jié),這通過芯片的字節(jié)定位引腳實現(xiàn)。當(dāng)RBLE位為1時使能字節(jié)定位功能,BLS3:0在讀寫操作時輸出低電平。當(dāng)RBLE位為0時,禁止該功能。 WST2:和讀操作類似,一些慢速的外部存儲器可能不能適應(yīng)EMC最高速度的寫操作,所以需要在寫周期中插入若干個空閑等待周期,以降低寫操作的速度。該域控制著寫周期中插入的空閑CCLK周期數(shù)。計算公式為:寫操作周期長度 WST2 + 3;(WST2的復(fù)位值為15) MW:該位控制相應(yīng)存儲器組的數(shù)據(jù)總
27、線寬度, 定義如下:00 8位 01 16位 10 32位 11 保留 如果存儲器組配置成32位寬度,地址線A0和A1無用,可作為GPIO使用(由PINSEL2設(shè)置); 如果存儲器組配置成16位寬度,地址線A0無用,可作為GPIO使用(由PINSEL2設(shè)置); 如果存儲器組配置成8位寬度,并且使能字節(jié)定位功能(RBLE=1),存儲器的寫信號由BLS0提供,否則由WE信號提供; 同一寄存器組的器件寬度必須一致。XCLKCSOEWE/BLSAddrData有效數(shù)據(jù)有效地址寫操作,共需3個周期9引腳連接模塊LPC2000系列微控制器的大部分管腳都具有多種功能,即管腳復(fù)用,但是同一引腳在同一時刻只能使
28、用其中一個功能,通過配置相關(guān)寄存器控制多路開關(guān)來連接引腳與片內(nèi)外設(shè)。PINSEL0 = (PINSEL0 & 0xFFF0FFFF) | (0x05 16);12GPIO相關(guān)寄存器描述IOxPIN該寄存器反映了當(dāng)前引腳的狀態(tài)。IOxPIN中的x對應(yīng)于某一個端口,如P1口對應(yīng)于IO1PIN。所以芯片存在多少個端口,就有多少個IOxPIN分別與之對應(yīng)。相關(guān)寄存器描述IOxDIR當(dāng)引腳設(shè)置為GPIO輸出模式時,可使用該寄存器控制引腳的方向。向某位寫入1使對應(yīng)引腳作為輸出功能,寫入0時作為輸入功能。作為輸入功能時,引腳處于高阻態(tài)。相關(guān)寄存器描述IOxSET IOxCLR當(dāng)引腳設(shè)置為GPIO輸出模式時,
29、可使用該寄存器從引腳輸出高/低電平。向某位寫入1使對應(yīng)引腳輸出高/低電平。寫入0無效。13UART0接收/發(fā)送器保持寄存器通過讀取U0RBR寄存器可以將接收FIFO中最早接收到的字節(jié)讀出,當(dāng)FIFO中不再包含有效數(shù)據(jù)時,該寄存器反映接收到的最后一個有效字節(jié)數(shù)據(jù)。接收的數(shù)據(jù)不足8位時,高位用0填充。寫入U0THR寄存器的值將是發(fā)送FIFO中的最高字節(jié)。訪問該寄存器時,U0LCR的除數(shù)鎖存訪問位(DLAB)必須為0。 注意: U0RBR只讀。訪問該寄存器時,U0LCR的除數(shù)鎖存訪問位(DLAB)必須為0。 注意: U0THR只寫。它的地址與U0RBR相同,通過讀/寫操作予以區(qū)分。除數(shù)鎖存寄存器這兩
30、個寄存器決定波特率時鐘的頻率,而波特率時鐘必須是波特率的16倍。波特率計算公式如下:BaudRate = FPCLK / (U0DLM,U0DLL16) 注意:由于U0DLL、U0DLM寄存器與其它寄存器的地址重疊,所以在訪問它們時,U0LCR的除數(shù)鎖存訪問位(DLAB)必須為1。線狀態(tài)控制寄存器(U0LCR)線狀態(tài)寄存器(U0LSR)PINSEL0 = 0x00000005;U0LCR = 0x83;Fdiv = (Fpclk / 16) / UART_BPS;U0DLM = Fdiv / 256;U0LLM = Fdiv % 256;U0LCR = 0x03;U0THR = data;wh
31、ile(U0LSR & 0x40) = 0);while(U0LSR & 0x01) = 0);rcv_data = U0RBR;14I2C接口I2C接口是Philips推出的一種串行總線方式,用于IC器件之間的通信。它通過SDA和SCL兩根線在連到總線上的器件之間傳送信息,并通過軟件尋址識別每個器件,而不需要片選線。 I2C接口的標(biāo)準(zhǔn)傳輸速率為100Kbit/s,最高傳輸速率可達400Kbit/s。起始信號結(jié)束信號SDASCLSP發(fā)送起始信號后傳送的第一字節(jié)數(shù)據(jù)具有特別的意義,其中前七位為從機地址,最后一位為讀寫方向位(0表示寫,1表示讀)SDASCL應(yīng)答信號非應(yīng)答信號AALPC2000在I
32、2C通信中可以配置為主控器也可以作為被控器,那么它就具有4種操作模式:主發(fā)送模式、主接收模式、從發(fā)送模式和從接收模式。S從器件地址WA數(shù)據(jù)A數(shù)據(jù)A/ APS從器件地址RA數(shù)據(jù)A數(shù)據(jù)AP15. SPI接口SPI是一種全雙工的同步串行接口,一個SPI總線可以連接多個主機和多個從機。在同一時刻只允許一個主機操作總線,并且同時只能和一個從機通信。引腳名稱類型描述SCK輸入/輸出串行時鐘,用于同步SPI接口間數(shù)據(jù)傳輸?shù)臅r鐘信號。該時鐘信號總是由主機輸出。SSEL輸入從機選擇,SPI從機選擇信號是一個低有效信號,用于指示被選擇參與數(shù)據(jù)傳輸?shù)膹臋C。每個從機都有各自特定的從機選擇輸入信號。MISO輸入/輸出主
33、入從出,MISO信號是一個單向的信號,它將數(shù)據(jù)由從機傳輸?shù)街鳈C。MOSI輸入/輸出主出從入,MOSI信號是一個單向的信號,它將數(shù)據(jù)從主機傳輸?shù)綇臋C。SPI傳輸方式:四種時鐘信號極性0 極性1時鐘相位為0 時鐘前沿數(shù)據(jù)采樣 時鐘后沿數(shù)據(jù)輸出時鐘相位為1 時鐘前沿數(shù)據(jù)輸出 時鐘后沿數(shù)據(jù)采樣15定時器0預(yù)分頻計數(shù)器TxPC定時器計數(shù)器TxTC預(yù)分頻寄存器TxPR定時器控制TxTCR中斷標(biāo)志寄存器TxIRFpclkTxPR寄存器為32為寄存器,該寄存器指定了預(yù)分頻計數(shù)器的最大值。TxPC寄存器為32為寄存器。預(yù)分頻計數(shù)器每個pclk周期加1。當(dāng)其到達預(yù)分頻寄存器中保存的值時,定時器計數(shù)器加1,預(yù)分頻計
34、數(shù)器在下個pclk周期復(fù)位。當(dāng)預(yù)分頻計數(shù)器到達計數(shù)的上限時,定時器計數(shù)器寄存器(TxTC)加1。TC從0x00000000計數(shù)一直到0xFFFFFFFF,然后翻轉(zhuǎn)至0,除非中途被復(fù)位。計數(shù)值翻轉(zhuǎn)不會引起中斷。定時器控制寄存器TxTCR匹配控制MCR匹配值MR0MR3匹配輸出EMR定時器計數(shù)器TC匹配功能寄存器(MCR)匹配寄存器(MR0MR3)值與定時器計數(shù)值相比較,當(dāng)兩個值相等時自動觸發(fā)在MCR寄存器中設(shè)置的動作。匹配功能寄存器(EMR)捕獲控制CCR捕獲寄存器CR0CR3定時器計數(shù)器TC捕獲功能寄存器(CCR)每個捕獲寄存器(CRx)都與一個或幾個器件管腳相關(guān)聯(lián)。當(dāng)管腳發(fā)生特定的事件時,可
35、將定時器計數(shù)值裝入該寄存器。捕獲控制寄存器的設(shè)定決定捕獲功能是否使能,以及捕獲事件在管腳的上升沿、下降沿或是雙邊沿發(fā)生。 T0TC = 0;T0PR = 0;while(IO0PIN & 0x01) != 0);T0TCR = 0x01;while(IO0PIN & 0x01) = 0);T0TCR = 0x00;time = T0TC;PINSEL0 = 0x00000800;T0TC = 0;T0PR = 0;T0MCR = 0x01;T0EMR = 0xC0;T0MR1 = 5000;T0TCR = 0x01;16. AD轉(zhuǎn)換器ADDRA/D轉(zhuǎn)換控制A/D數(shù)據(jù)寄存器ADCRA/D控制寄存
36、器FpclkAD轉(zhuǎn)換時鐘VICAIN0AIN1AIN7引腳名稱類型引腳描述AIN7AIN0輸入模擬輸入。A/D轉(zhuǎn)換器單元可分時測量這8個引腳上的輸入信號電壓。即使這些引腳設(shè)置為GPIO功能,仍可以使用A/D轉(zhuǎn)換器部件。V3A,VSSA電源模擬電源和地。它們分別與標(biāo)稱的V3和VSSD的電壓相同,但為了降低噪聲和出錯幾率,兩者應(yīng)當(dāng)隔離。轉(zhuǎn)換器的VrefP和VrefN信號在內(nèi)部與這兩個電源信號相連。CLKDIV:將VPB時鐘(PCLK)進行分頻,得到AD轉(zhuǎn)換時鐘。分頻后的時鐘必須小于或等于4.5MHz。通常將CLKDIV編程為允許的最小值,以獲得4.5MHz或稍低于4.5MHz的時鐘。A/D轉(zhuǎn)換器時
37、鐘 PCLK / ( CLKDIV + 1)V/VddA:當(dāng)DONE位為1時,該字段包含對SEL字段選中的Ain腳的轉(zhuǎn)換結(jié)果,為一個二進制數(shù)。 轉(zhuǎn)換結(jié)果為0時,表示Ain引腳電平小于、等于或接近于VSSA。為0x3FF時,表示Ain引腳電平等于、大于或接近于VddA。輸入電壓計算公式為:Vin = 結(jié)果(VSSA / 0x3FF)PINSEL1 = (PINSEL1 & 0xFC3FFFFF) | 0x00400000; ADCR = (0x00 22) | / TEST1:0 (0x01 21) | / PDN (0x00 16) | / BUREST (Fpclk/ADCLK + 1) 8
38、) | / CLKDIV (0x01 0); / SELADCR |= (1 6) & 0x3FF; 16看門狗看門狗模式寄存器WDMODWDEN:看門狗中斷使能位,該位只能置位。該位置位后,將使能看門狗。一旦該位置位,軟件無法將其清零。只有外部復(fù)位或看門狗定時器溢出能將其清零。WDRESET:看門狗復(fù)位使能位,該位只能軟件清除。該位置位后,看門狗溢出將引起復(fù)位。一旦該位置位,軟件無法將其清零。只有外部復(fù)位或看門狗定時器溢出能將其清零。WDTOF:看門狗超時標(biāo)志W(wǎng)DINT:看門狗中斷標(biāo)志。當(dāng)看門狗發(fā)生超時,該位置位。該標(biāo)志不能由軟件清零,只能通過外部復(fù)位或者看門狗復(fù)位清零。 注意:將WDEN置
39、位后只是使能WDT,但沒有啟動WDT,當(dāng)?shù)谝淮挝构凡僮鲿r才啟動WDT。WDTC決定看門狗超時值,當(dāng)喂狗時序產(chǎn)生時,該寄存器的內(nèi)容重新裝入看門狗定時器。該寄存器的復(fù)位值為0xFF,即使寫入更小的值,也會裝入0xFF。溢出最小時間:tpclk0xFF4溢出最大時間:tpclk0xFFFFFFFF4WDFEED:向該寄存器寫入0xAA,然后寫入0x55會使WDTC的值重新裝入看門狗定時器。在看門狗能夠產(chǎn)生中斷/復(fù)位之前,即看門狗溢出之前,必須完成一次有效的喂狗時序。 注意:如果喂狗時序不正確,將在喂狗之后的第二個PCLK周期產(chǎn)生看門狗復(fù)位。WDTC = 0x10000;WDMOD = 0x03;WDFEED = 0xAA;WDFEED = 0x55;嵌入式實時操作系統(tǒng)uc/os-II1. 概念實時操作系統(tǒng)(RTOS)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時,能夠接受并以足夠快的速度予以處理,其
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代醫(yī)療技術(shù)中的石墨烯研究進展及市場預(yù)測
- 科技類培訓(xùn)課程實踐與成效的全面分析
- 與媒體合同范本
- 銀行取款合同范本
- 燒成加工合同范本
- 知識產(chǎn)教育實踐培養(yǎng)未來創(chuàng)新人才
- 社交媒體平臺在教育培訓(xùn)領(lǐng)域的應(yīng)用與市場前景
- 環(huán)保法律法規(guī)在推動可持續(xù)發(fā)展中的作用研究
- 班級學(xué)期創(chuàng)新項目實施與效果評估
- 社交媒體驅(qū)動的電商創(chuàng)新案例研究
- 《云南瀾滄鉛礦有限公司勐濱煤礦采礦權(quán)價款退還計算說明》
- sbl-ep16高低壓開關(guān)柜培訓(xùn)中法文kyn6140.5安裝使用說明書
- GB/T 9113.1-2000平面、突面整體鋼制管法蘭
- GB/T 8947-1998復(fù)合塑料編織袋
- PALL 頗爾過濾器 -乙烯系統(tǒng)培訓(xùn)
- 2021年湖北師范學(xué)院專升本C語言程序設(shè)計試卷
- CB/T 3136-1995船體建造精度標(biāo)準(zhǔn)
- 疫苗冰箱溫度記錄表
- 全科醫(yī)療服務(wù)模式及服務(wù)內(nèi)容課件
- X射線衍射課件(XRD)
- 清新淡雅簡潔通用模板課件
評論
0/150
提交評論