基于s3c2410的系统设计_第1页
基于s3c2410的系统设计_第2页
基于s3c2410的系统设计_第3页
基于s3c2410的系统设计_第4页
基于s3c2410的系统设计_第5页
已阅读5页,还剩68页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章

嵌入式系统设计1概述嵌入式系统的硬件设计时钟与电源管理实时时钟定时器嵌入式系统接口设计中断控制器I/O端口UART接口24.1概述3嵌入式系统设计的重要特点是技术多样化,即实现同一个嵌入式系统可以有许多不同的设计方案选择,而不同的设计方案就意味使用不同的设计和生产技术。嵌入式系统设计一般步骤1)需求分析3)硬件/软件设计2)体系结构设计4)系统集成和系统测试注意:各个阶段之间往往要求不断的反复和修改,直至完成最终设计目标。4嵌入式系统设计过程1)需求分析阶段包括6①

分析用户的需求②

确定硬件软件③

检查需求分析的结果④

确定项目的约束条件⑤

概要设计需求分析-罗列用户的需求7系统用于什么任务?系统接收什么输入和输出什么信号?用户需要如何同系统打交道?系统的重量和体积如何?系统需要连接何种外设?系统是否需要运行某些现存的软件?系统处理哪种类型的数据?系统是否要与别的系统通讯?系统是单机还是网络系统?需求分析-罗列用户的需求8系统的响应时间是多少?需要什么安全措施?在什么样的环境下运行?外部存储媒介和内存需要多大?系统可拆装性,可靠性,牢固性的期望值是什么

(14)如何给系统供电?系统如何向用户通报故障?是否需要任何手动或机械代用装置?系统是否将具有远程诊断或更正问题的功能?其他问题2)体系结构设计9设计目的—描述系统的功能如何实现。决定因素—①系统是硬实时系统还是软实时系统;②操作系统是否需要嵌入;③物理系统的成本、尺寸和耗电量是否是产品成功的关键因素;④选择处理器和相关硬件;⑤其他。3)硬件/软件设计10设计目的决定哪些用硬件实现,哪些用软件实现。例如:浮点运算;网络通信控制器实现的功能;软调制

解调器/硬调制解调器;软件压缩解压/硬件压缩解压图像。硬件设计①设计硬件子系统(top-down方法)

分成模块;设计框图。例如:CPU子系统、存储器子系统等

。②定义硬件接口I/O端口;硬件寄存器;共享内存;硬件中断;存储器空间分配;处理器的运行速度。3)硬件/软件设计11(3)软件设计设计软件子系统:软件总体设计、模块设计。定义软件接口:模块接口、函数接口。(4)检查设计小项目:自己审查设计文档中等项目:拿给同事朋友并向他们解释你的设计

大型项目-审查会:设计者应作一个更正式的报告由于这是一个设计审查会,召集一群人,主要由工程师组成,并尽可能包括一些对项目有不同看法角度的成员,如做市场的人员、最终用户。4)系统集成与测试12系统集成把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进设计过程中的错误。系统测试对设计好的系统进行测试,看其是否满足给定的要求。4.2

嵌入式系统的硬件设计13在现阶段,嵌入式系统设计仍处于一种手工阶段。微处理器系统的硬件一般包括有微处理器、存储器、时钟和电源管理、复位电路等几部分。4.2.1时钟和电源管理14时钟电源管理主要包括:Clock控制、

POWER控制.时钟控制逻辑单元产生所需要的时钟信号,包括CPU使用的主频FCLK(系统时钟),AHB总线设备使用的HCLK,以及APB总线设

备使用的PCLK.电源控制逻辑单元,通过控制时钟信号提供不同的电源管理方案,以优化电源消耗。一、时钟控制15主时钟源由OM[3:2]控制,可以接外部晶振

(XTIPLL)或者是外部时钟(EXTCLK)。时钟

生成器包含了一个振荡器(振荡放大器),其连接外部晶振,并且还有2个PLL,可以产生所需的高频时钟。一、时钟控制时钟源选择与OM[3:2]引脚组合关系16一、时钟控制17注意:虽然MPLL在reset以后就开始工作,但是MPLL输出(Mpll

)没有作为系统时钟来使用,直到软件对MPLLCON寄存器写入

有效设置。有效设置前,来自外部晶振或外部时钟源的时钟将直接被当作系统时钟来使用。就算是用户不想改变MPLLCON寄存器的默认值,用户应该再重新写入MPLLCON

寄存器一次相同的值。4.2.1微处理器芯片选型的一般原则18锁锁相相环环(PLL:Phase-locked

loops)是一种利用反馈(Feedback)控制原理实现的频率及相位的同步技术,其作用是将电路输出的时钟与其外部的参考时钟保持同步。当参考时钟的频率或相位发生改变时,锁相环会检测到这种变化,并且通过其内部的反馈系统来调节输出频率,直到两者重新同步,这种同步又称为“锁相”(Phase-locked)二、锁相环19位于时钟发生器中的MPLL,通过内

部的多个分频器,得到在相位上同步于外部输入信号的输出信号。主要包括:3个分频器(分频器P、M、S),鉴相器,电荷泵,电压控制振荡器,环路滤波器。二、锁相环20输出时钟频率Mpll相对于参考输入时钟频率

Fin如以下公式所示:Mpll=

(2

*

m

*

Fin)

/

(p

*s

2

)m=M(分频器M的值)+8,p=P(分频器P的值)+2二、锁相环21三、时钟控制逻辑22时钟控制逻辑决定哪个时钟源被使用,mpll还是直接使用外部时钟(XTIpll

orEXTCLK)。当PLL配置新频率值时,时钟控制逻辑使

Fclk无效直到PLL输出使用PLL锁定时间达到稳定。时钟控制逻辑单元在上电reset和

power-down模式被唤醒时被激活。三、时钟控制逻辑时钟控制逻辑决定哪个时钟源被使用,mpll还是直接使用外部时钟(XTIpll

orEXTCLK)。当PLL配置新频率值时,时钟控制逻辑使

Fclk无效直到PLL输出使s

用PLL锁定时间达到稳定。时钟控制逻辑单元在上电reset和

power-down模式被唤醒时被激活。23四、FCLK/HCLK/PCLK24FCLK用于ARM920THCLK用于AHB总线,例如用于ARM920T,内存控制,中断控制,LCD控制,DMA以及USB主模块。PCLK用于APB总线,用于外围设备如看门狗,IIS,I2C,PWM,MMC接口,ADC,UART,GPIO,RTC以及SPI。四、FCLK/HCLK/PCLK2410支持FCLK,HCLK,PCLK分频比的选择。比例由CLKDIVN控制寄存器中的

HDIVN,PDIVN位确定。25HDIVN=CLKDIVN[2:1]PDIVN=CLKDIVN[0]四、FCLK/HCLK/PCLK设置值在1.5HCLK后有效,1个HCLK可以

CLKDIVN寄存器的值从默认(1:1:1)到其他分频比(1:1:2,1:2:2,1:24

)改变有效。26void

Target_Init(void){MMU_Init();ChangeClockDivider(1,1);27//

1:2:4ChangeMPllValue(0xa1,0x3,0x1);//

FCLK=202.8MHzPort_Init();Isr_Init();Uart_Init(0,115200);Uart_Select(0);}void

ChangeClockDivider(int

hdivn,int

pdivn){//

hdivn,pdivn

FCLK:HCLK:PCLK28//0,01:1:1//0,11:1:2//1,01:2:2//1,11:2:4rCLKDIVN

=

(hdivn<<1)

|

pdivn;if(hdivn)MMU_SetAsyncBusMode();elseMMU_SetFastBusMode();}void

ChangeMPllValue(int

mdiv,int

pdiv,int

sdiv){rMPLLCON

=

(mdiv<<12)

|

(pdiv<<4)

|

sdiv;}//MPLLCON寄存器:用于设置FCLK与Fin的倍数//位[19:12]的值称为MDIV,位[9:4]的值称为PDIV,位//[1:0]的值称为SDIV//MPLL(FCLK)=(m*Fin)/(p*2^s)//其中:m=MDIV+8,p=PDIV+2,s=SDIV29五、电源管理302410的电源管理模块通过软件控制系统时钟来降低各个模块的电源消耗。这些方案与

PLL,时钟控制逻辑(FCLK,HCLK,PCLK),以及唤醒信号相关。2410有4种电源模式,各个模式并不能自由转换,有条件。五、电源管理2410的电源管理模块通过软件控制系统时钟来降低各个模块的电源消耗。这些方案与

PLL,时钟控制逻辑(FCLK,HCLK,PCLK),以及唤醒信号相关。2410有4种电源模式,下面描述每个电源管理模式,各个模式并不能自由转换,有条件31五、电源管理2410的电源管理模块通过软件控制系统时钟来降低各个模块的电源消耗。这些方案与

PLL,时钟控制逻辑(FCLK,HCLK,PCLK),以及唤醒信号相关。2410有4种电源模式,下面描述每个电源管理模式,各个模式并不能自由转换,有条件32五、电源管理4种电源模式33六、相关寄存器34锁定时间计数寄存器(LOCKTIME)锁相环控制寄存器(MPLLCON&UPLLCON)时钟控制寄存器(CLKCON)时钟减慢控制寄存器(CLKSLOW)时钟分频控制寄存器(CLKDIVN)4.2.2实时时钟35大多数嵌入式系统有两种时钟源:实时时钟(real

time

clock,RTC);定时器/计数器。实时时钟:一般靠电池供电,即使系统断电,也可以维持日期和时间。实时时钟独立于操作系统,所以也被称为硬件时钟,为整个系统提供一个计时标准。定时器/计数器:实时内核需要一个定时器作为系统时钟(或称OS时钟),并由实时内核控制系统时钟工作。一般情况下,系统时钟的最小粒度是由应用和操作系统的特点决定的。37(1)S3C2410

RTC的振荡电路S3C2410

RTC的只需外接2个20P左右的小电容、

32.768KHz的晶振即可。如下图所示。(2)RTC专用寄存器S3C2410的RTC有17个专用寄存器,均需用字节读写。下表为前10个,有4个为控制寄存器,6个为报警寄存器。RegisterAddressR/WDescriptionReset

ValueRTCCON0x57000040/3R/WRTC控制寄存器0x0TICNT0x57000044/7R/WRTC节拍计数器0x00RTCALM0x57000050/3R/WRTC报警控制寄存器0x00RTCRST0x5700006C/FR/WRTC循环复位寄存器0x0ALMSEC0x57000054/7R/W报警秒数寄存器0x00ALMMIN0x57000058/BR/W报警分钟数寄存器0x00ALMHOUR0x5700005C/FR/W报警小时数寄存器0x00ALMDAY0x57000060/3R/W报警天(日)数寄存器0x01ALMMON0x57000064/7R/W报警月数寄存器0x01ALMYEAR0x57000068/BR/W报警年数寄存器0x00(2)RTC专用寄存器S3C2410的RTC有17个专用寄存器,均需用字节读写。下表为4个控制寄存器。RegisterAddressR/WDescriptionResetValueRTCCON0x57000040/3R/WRTC控制寄存器0x0TICNT0x57000044/7R/WRTC节拍计数器0x00RTCALM0x57000050/3R/WRTC报警控制寄存器0x00RTCRST0x5700006C/FR/WRTC秒循环复位寄存器0x0本表6个寄存器:为报警日期、时间寄存器RegisterAddressR/WDescriptionResetValueALMSEC0x57000054/7R/W报警秒数寄存器0x00ALMMIN0x57000058/BR/W报警分钟数寄存器0x00ALMHOUR0x5700005C/FR/W报警小时数寄存器0x00ALMDAY0x57000060/3R/W报警天(日)数寄存器0x01ALMMON0x57000064/7R/W报警月数寄存器0x01ALMYEAR0x57000068/BR/W报警年数寄存器0x00后7个寄存器:为日期、时间寄存器。RegisterAddressR/WDescriptionResetValueBCDSEC0x57000070/3R/W秒当前值寄存器0xXXBCDMIN0x57000074/7R/W分钟当前值寄存器0xXXBCDHOUR0x57000078/BR/W小时当前值寄存器0xXXBCDDAY0x5700007C/FR/W日当前值寄存器0xXXBCDDATE0x57000080/3R/W星期当前值寄存器0xXXBCDMON0x57000084/7R/W月当前值寄存器0xXXBCDYEAR0x57000088/BR/W年当前值寄存器0xXX4.2.3定时器435个16位定时器;2个8位预分频器和2个4位分频器;可编程PWM输出占空比;具有初值自动重装连续输出模式和单脉冲输出模式;具有死区生成器。在这段时间间隔内,禁止两个开关同时处于开启状态。4.2.3定时器44S3C2410有5个16位的定时器,定时器0-3具有PWM(脉宽调制)功能。定时器4是一个内部定时器,没有输出引脚,供内部使用。定时器0有死区产

生器,通常用于大电流设备控制。有2个8位预分频器和2个4位分频器。定时器0

和定时器1

分享同一个8

位的预分频器和分频器,定时器2、3、4

分享另一个预分频器和分频器,分频器有1/2、1/4、1/8、1/16这4种分频值。定时器从分频器接收自己的时钟信号,时钟分频器从相应的预分频器接收时钟信号。1)PWM(脉宽调制)概念PWM(脉宽调制):就是只对一方波序列信号的占空比按照要求进行调制,而不改变方波信号的其它参数,即不改变幅度和周期,因此脉宽调制信号的产生和传输,都是数字式的。用脉宽调制技术可以实现模拟信号:如果调制信

号的频率远远大于信号接受者的分辨率,则接收者获得的是信号的平均效果,不能感知数字信号的0和1,其信号大小的平均值与信号的占空比有关,信号的占空比越大,平均信号越强,其平均值与占空比成正比。只要带宽足够(频率足够高或周期足够短),任何模拟信号都可以使用PWM

来实现。PWM技术的应用:借助于微处理器,使用脉宽调制方法实现模拟信号是一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。2)结构与工作原理(1)定时器结构时钟控制:系统为每个定时器设置有:预分频器、分频器。定时器组成(5部分):减法计数器、初值寄存器、比较寄存器、观察寄存器、控制逻辑等部分构成。47定时器结构图预分频器8位分频器1/21/41/81/16TCLK0/1计数器观察寄存器PCLK五选一开关初值寄存器控制逻辑TOUT比较寄存器中断(2)工作原理①定时器工作过程装入初值、启动计数,计数结束产生中断请求,并且可以重装初值连续计数。如下图所示。TCNTBn=3TCMPn=1Manual

update=1Auto-reload=1TCNTBn=2TCMPn=0Manual

update=0Auto-reload=0②初值自动重装、手动装载和双缓冲初值自动重装功能:

5个定时器都具有此功能。当计数器中值减到0后,若设置了自动重装功能,则在下一计数周期开始前将初值装入计数器重新计数。初值手动装载功能:在启动计数前,必须使用手动装载功能将初值装入计数器,而初值自动重装仅是一次计数结束后重新装入初值。双缓冲功能:如果定时器正在工作,此时写入新的数据到TCNTBn、或者到TCMPBn,该写入的数据不影响本次定时器的操作。当定时器到达0后下一次运行定时器时,新写入的

TCNTBn、或者TCMPBn才生效。③PWM输出寄存器TCMPB的作用:当计数器TCNT中的值减到与TCMPB的值相同时,TOUT的输出值取反。改变TCMPB的值,便改变了输出方波的占空比。TOUT的输出可以设置为反相输出,如下图所示。④死区产生器死区的概念:是一小段时间间隔,在这个时间间隔内,禁止两个开关同时处于开启状态。死区是在功率设备控制中常采用的一种技术,防止两个开关同时打开起反作用。S3C2410的timer0具有死区发生器功能,可用于控制大功率设备。死区发生器开启前后输出波形对比DMA请求模式S3C2410中定时器的DMA功能:系统中的5个定时器都有DMA请求功能,但是在同一时刻只能设置一个使用DMA功能,通过设置其DMA模式位来实现。DMA请求过程:定时器可以在任意时间产生DMA请求,并且保持DMA请求信号(nDMA_REQ)为低直到定时器收到ACK信号。当定时器收到ACK信号时,它使请求信号变得无效。DMA请求与中断的关系:如果一个定时器被配置为

DMA模式,该定时器不会产生中断请求了。其他的定时器会正常的产生中断。3)计数时钟和输出计算定时器输入时钟频率f

Tclk

(即计数时钟频率)

:f

Tclk=[f

pclk∕(Prescaler+1)]

×分频值式中:Prescaler,预分频值,0---255;分频值为1/2、1/4、1/8、1/16。PWM输出时钟频率

:PWM输出时钟频率=

f

Tclk

∕

TCNTBnPWM输出信号占空比(即高电平持续时间所占信号周期的比例):PWM输出信号占空比

=

TCMPBn∕

TCNTBn定时器最大、最小输出周期设PCLK的频率为50MHz,经过预分频和分频器后,送给定时器的可能计数时钟频率由表4-7-1给出。表4-7-1

定时器最大、最小输出周期分频值最小输出周期预分频器=0TCNTBn=1最大输出周期预分频器=255TCNTBn=65535最小输出周期预分频器=0

TCNTBn=65535最小输出周预分频器=0TCNTBn=2551/225.00MHz(0.04µs)0.6710s381Hz976561/412.50MHz(0.08µs)1.3421s191Hz488281/86.250MHz(0.16µs)2.6843s95Hz244141/163.125MHz(0.32µs)5.3686s48Hz122074)定时器专用寄存器共有6种、17个寄存器TCNTBn---Timern计数初值寄存器(计数缓冲寄存器),16位TCMPBn---Timern比较寄存器(比较缓冲寄存器),16位TCNTOn---Timern计数读出寄存器,16位RegisterAddressR/WDescriptionResetValueTCFG00x51000000R/W配置寄存器00x00000000TCFG10x51000004R/W配置寄存器10x00000000TCON0x51000008R/W控制寄存器0x00000000TCNTBn0x510000xxR/W计数初值寄存器(5个)0x0000TCMPBn0x510000xxR/W比较寄存器(4个)0x0000TCNTOn0x510000xxR观察寄存器(5个)0x0000Dead

zone

length---死区宽度设置位其值N为:0~255,以timer0的定时时间为单位死区宽度为:(N+1)×timer0的定时时间Prescaler1---timer2、3、4的预分频值其值N为:0~255输出频率为:PCLK

÷(N+1)Prescaler0---timer0、1的预分频值其值N为:0~255输出频率为:PCLK

÷(N+1)(1)TCFG0---预分频器配置寄存器31……2423……1615……87……0保留(为0)Dead

zonelengthPrescaler1Prescaler0(2)TCFG1---DMA模式与分频选择寄存器DMA

mode---DMA通道选择设置位0000:不使用DMA方式,所有通道都用中断方式0001:选择timer00011:选择timer20101:选择timer40010:选择timer10100:选择timer3011X:保留MUX4~

MUX0---timer4~timer0分频值选择0000:1/20001:1/40011:1/160010:1/801XX:选择外部TCLK0、1(对timer0、1是选

TCLK0,对timer4、3、2是选TCLK1)31

…

2423

…

2019…1615…1211…87

…

43

…

0保留(为0)DMA

modeMUX4MUX3MUX2MUX1MUX0TL4~TL0---计数初值自动重装控制位0:单次计数1:计数器值减到0时,自动重新装入初值连续计数。TUP4~TUP0---计数初值手动装载控制位。0:不操作

1:立即将TCNTBn中的计数初值装载到计数寄存器TCNTn中。说明:如果没有执行手动装载初值,则计数器启动时无初值。121110987…543210TR2TL1TO1TUP1TR1保留DZETL0TO0TUP0TR0(3)TCON---定时器控制寄存器31…2322212019181716151413保留TL4TUP4TR4TL3TO3TUP3TR3TL2TO2TUP2TR4~TR0---TIMER4~TIMER0运行控制位0:停止

1:启动对应的TIMERTO3~TO0---

TIMER4~TIMER0输出控制位0:正相输出

1:反相输出DZE---TIMER0死区操作控制位0:禁止死区操作

1:使能死区操作121110987…543210TR2TL1TO1TUP1TR1保留DZETL0TO0TUP0TR0TCON---定时器控制寄存器(续)31…2322212019181716151413保留TL4TUP4TR4TL3TO3TUP3TR3TL2TO2TUP24)定时器的使用(1)定时器初始化方法①写TCFG0,设置计数时钟的预分频值和Timer0死区宽度;②写TCFG1,选择各个定时器的分频值和DMA、中断服务;③对TCNTBn和TCMPBn分别写入计数初值和比较初值;④写TCON,设置计数初值自动重装、手动装载初值、设置反相输出;⑤再写TCON,清除手动装载初值位、设置正相输出、启动计数。2、定时器停止运行方法写TCON,禁止计数初值自动重装。(一般不使用运行控制位停止运行)3、定时器操作例子5011040

40

20

6058按照前面初始化定时器;设置

TCNTBn=160(50+110),TCMPBn=110;手动装入初值后,又重设TCNTBn=80,TCMPBn=40;启动定时器,按第一个初值计数;与第一个比较值相同,输出取反;第一次计数结束,自动重装初值80、40;在第一次中断处理程序又重设TCMPBn=60;(8)在第二次中断处理程序禁止自动重装初值,准备结束计数;(10)第三次计数结束,不再计数。1

2

3

4

6

7

9

10TOUTn定时器应用举例#define

BIT_TIMER0#define

BIT_TIMER1#define

BIT_TIMER2#define

BIT_TIMER3#define

BIT_TIMER4(0x1<<10)(0x1<<11)(0x1<<12)(0x1<<13)(0x1<<14)定时器应用举例#int

variable0,variable1,variable2,variable3,variabvoid

irq

Timer0Done(void){//Clear

pending

bit//Clear

serve

bitrSRCPND

=

BIT_TIMER0;rINTPND

=

BIT_TIMER0;variable0++;}void

irq

Timer1Done(void)//Clear

pending

bit{

rSRCPND

=

BIT_TIMER1;rINTPND

=

BIT_TIMER1;variable1++;}#define

pISR_TIMER0

(*(unsigned*)(_ISR_STARTADDRESS+0x48))#define

pISR_TIMER1

(*(unsigned*)(_ISR_STARTADDRESS+0x4c))void

Test_TimerInt(void){variable0

=

0;variable1

=

0;variable2

=

0;variable3

=

0;variable4

=

0;rINTMSK

=

~(BIT_TIMER4

|

BIT_TIMER3

|

BIT_TIMER2

|BIT_TIMER1

|

BIT_TIMER0);//将各个中断向量写入中断向量表中pISR_TIMER0=(int)Timer0Done;pISR_TIMER1=(int)Timer1Done;pISR_TIMER2=(int)Timer2Done;pISR_TIMER3=(int)Timer3Done;pISR_TIMER4=(int)Timer4Done;Uart_Printf("\n[

Timer

0,1,2,3,4

Interrupt

Test

]\n\nrTCFG0

=

rTCFG0

&

~(0xffffff)

|

0x000f0f;//死区宽度=0//T1预分频=0x0f,T0预分频=0x0frTCFG1

=rTCFG1

&

~(0xffffff)

|

0x001233;//全部使用中//T4---T0分频值为:1/2,1/4,1/8,1/16,1/16//设置T0---T4计数初值rTCNTB0

=

0xffff;

rTCNTB1

=

0xffff;

rTCNTB2

=

0xffff;

rTCNTB3

=

0xffff;

rTCNTB4

=

0xffff;//

(1/(50MHz/16/16))

*

0xffff

(65535)

=

0//

(1/(50MHz/16/16))

*

0xffff

(65535)

=

0//

(1/(50MHz/16/8

))

*

0xffff

(65535)

=

0//

(1/(50MHz/16/4

))

*

0xffff

(65535)

=

0//

(1/(50MHz/16/2

))

*

0xffff

(65535)

=

0rTCON =

rTCON

&

~(0xffffff)

|

0x6aaa0a;

//Auto

relo//Inverter

off,

Manual

update,

Dead

zone

disable,

StoprTCON =

rTCON

&

~(0xffffff)

|

0x599901;

//Auto

relo//(T0=One-shot),Inverter

off,No

operation,Dead

zonedisable,Startwhile(variable0

==

0);Delay(1);

//To

compensate

timer

error(<1

tiperiod)if(variable4==8

&&

variable3==4

&&

variable2==2

&&variable1==1

&&

variable0==1)Uart_Printf("Timer

0,1,2,3,4

Interrupt

Test

-->

OK\elseUart_Printf("Timer

0,1,2,3,4

Interrupt

Test

-->Fail.......\n");Uart_Printf("Press

any

key

to

exit

Timer

interrupttest\n");

while(!Uart_GetKey());rTCON =

0x0;Dead//One-shot,

Inverter

off,

No

operation,zone

disable,

StopUart_Printf("Timers

interrupt

number

is

as

below:\nUart_Printf("Timer0

-

%d

,Timer1

-

%d

,Timer2

-

%d

,Time

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论