




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Good is good, but better carries it.精益求精,善益求善。s12dg128寄存器介绍及例程-PWM模块介绍时间:2009-11-2522:51来源:电子设计吧作者:dzsj8点击:662次该教程以MC9S12XS128单片机为核心进行讲解,全面阐释该16位单片机资源。本文为第一讲,开始介绍该MCU的PWM模块。PWM调制波有8个输出通道,每一个输出通道都可以独立的进行输出。每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。每一个PWM输出通道都能调制出占空比从0100%变化的波形。PWM的主要特点有:1、它有8个独
2、立的输出通道,并且通过编程可控制其输出波形的周期。2、每一个输出通道都有一个精确的计数器。3、每一个通道的PWM输出使能都可以由编程来控制。4、PWM输出波形的翻转控制可以通过编程来实现。5、周期和脉宽可以被双缓冲。当通道关闭或PWM计数器为0时,改变周期和脉宽才起作用。6、8字节或16字节的通道协议。7、有4个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时钟频率。8、通过编程可以实现希望的时钟周期。9、具有遇到紧急情况关闭程序的功能。10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。PWM寄存器说明1PWME、PWMCLK时间:2009-11-2522:56来源:
3、电子设计吧作者:dzsj8点击:493次1、PWM启动寄存器PWMEPWME寄存器每一位如图1所示:复位默认值:00000000B图1PWME寄存器每一个PWM的输出通道都有一个使能位PWMEx。它相当于一个开关,用来启动和关闭相应通道的PWM波形输出。当任意的PWMEx位置1,则相关的PWM输出通道就立刻可用。用法:PWME7=1-通道7可对外输出波形PWME7=0-通道7不能对外输出波形注意:在通道使能后所输出的第一个波形可能是不规则的。当输出通道工作在串联模式时(PWMCTL寄存器中的CONxx置1),那么)使能相应的16位PWM输出通道是由PWMEx的高位控制的,例如:设置PWMCTL
4、_CON01=1,通道0、1级联,形成一个16位PWM通道,由通道1的使能位控制PWM的输出。2、PWM时钟选择寄存器PWMCLKPWMCLK寄存器每一位如图3所示:复位默认值:00000000B图2PWMCLK寄存器S12的PWM共有四个时钟源,每一个PWM输出通道都有两个时钟可供选择(ClockA、ClockSA或ClockB、ClockSB)。其中0、1、4、5通道可选用ClockA和ClockSA,2、3、6、7通道可选用ClockB、ClockSB通道。该寄存器用来实现几个通道时钟源的选择。用法:PCLK0=1-通道0(PTP0)的时钟源设为ClockSAPCLK2=0-通道2(PT
5、P2)的时钟源设为ClockBPWM寄存器说明2PWMPRCLK、PWMSCLA/B时间:2009-11-2522:58来源:电子设计吧作者:dzsj8点击:435次1、PWM预分频寄存器PWMPRCLKPWMPRCLK寄存器每一位如图3所示:复位默认值:00000000B图3PWMPRCLK寄存器PWMPRCLK寄存器包括ClockA预分频和ClockB预分频的控制位。ClockA、ClockB的值为总线时钟的1/2n(0n7),具体设置参照图4和图5图4ClockA预分频设置图5ClockB预分频设置PCKB0PCKB2是对ClockB进行预分频。PCKA0PCKA2是对ClockA进行预
6、分频。2、PWM分频寄存器PWMSCLA、PWMSCLBPWMSCLA寄存器每一位如图6所示:图6PWMSCLA寄存器ClockSA是通过对PWMSCLA寄存器的设置来对ClockA进行分频而产生的。其计算公式为:ClockSA=ClockA/(2*PWMSCLA)PWMSCLB寄存器与PWMSCLA寄存器相似,ClockSB就是通过对PWMSCLB寄存器的设置来对ClockB进行分频而产生的。其计算公式为:ClockSB=ClockB/(2*PWMSCLB)PWM寄存器说明3PWMPOL、PWMCAE时间:2009-11-2607:09来源:电子设计吧作者:dzsj8点击:372次1、PWM
7、极性选择寄存器PWMPOLPWMPOL寄存器每一位如图7所示:该寄存器是07通道PWM输出起始极性控制位,用来设置PWM输出的起始电平。用法:PWMPOL_PPOL0=1-通道0在周期开始时输出为高电平,当计数器等于占空比寄存器的值时,输出为低电平。对外输出波形先是高电平然后再变为低电平。2、PWM波形对齐寄存器PWMCAEPWMCAE寄存器每一位如图8所示:图8PWMCAE寄存器PWMCAE寄存器包含8个控制位来对每个PWM通道设置左对齐输出或中心对齐输出。用法:PWMCAE_CAE0=1-通道0中心对齐输出PWMCAE_CAE7=0-通道7左对齐输出注意:只有输出通道被关闭后才能对其进行设
8、置,即通道被激活后不能对其进行设置。图7PWMPOL寄存器PWM寄存器说明4PWMCTL时间:2009-11-2607:22来源:电子设计吧作者:dzsj8点击:389次1、PWM控制寄存器PWMCTLPWMCTL寄存器每一位如图9所示:图9PWMCTL寄存器该控制寄存器设定通道的级联和两种工作模式:等待模式和冻结模式。这两种模式如图10和图11所示。图10等待模式图11冻结模式只有当相应的通道关闭后,才能改变这些控制字。用法:PWMCTLCON67=1-通道6、7级联成一个16位的PWM通道。此时只有7通道的控制字起作用,原通道7的使能位、PWM输出极性选择位、时钟选择控制位以及对齐方式选择
9、位用来设置级联后的PWM输出特性PWMCTLCON67=0-通道6,7通道不级联CON45、CON23、CON01的用法同CON67相似。设置此控制字的意义在于扩大了PWM对外输出脉冲的频率范围。PSWAI=1-MCU一旦处于等待状态,就会停止时钟的输入。这样就不会因时钟在空操作而费电;当它置为0,则MCU就是处于等待状态,也允许时钟的输入。PFRZ=1-MCU一旦处于冻结状态,就会停止计数器工作。PWM寄存器说明5PWMCNTx、PWMPERx、PWMDTYx时间:2009-11-2607:30来源:电子设计吧作者:dzsj8点击:440次1、PWM通道计数寄存器PWMCNTxPWMCNTx
10、寄存器共有8个,每一个通道都有一个8位PWM加/减双向计数器,通道级联后可变成16位PWM加/减双向计数器。下面以PWMCNT0为例对PWMCNTx寄存器进行介绍。PWMCNT0寄存器如图12所示:图12PWMCNT0寄存器计数器以所选时钟源的频率运行。计数器在任何时候都可以被读,而不影响计数,也不影响对PWM通道的操作。任何值写入PWMCNT0寄存器都会导致计数器复位置0,且其计数方向会被设置为向上计数,并且会立刻从缓冲器载入任务和周期值,并会根据翻转极性的设置来改变输出。当计数器达到计数值后,会自动清零。只有当通道使能后,计数器才开始计数。2、PWM通道周期寄存器PWMPERxPWMPER
11、x寄存器共有8个,每一个通道都有一个这样的周期寄存器。这个寄存器的值就决定了相关PWM通道的周期。每一个通道的周期寄存器都是双缓冲的,因此如果当通道使能后,改变他们的值,将不会发生任何作用,除非当下列情况之一发生:*有效的周期结束。*对计数器进行写操作(计数器复位)*通道不可用(PWMEx=0)这样就会使PWM输出波形要么是新波形要么是旧波形,并不会在两者之间进行交替变换。如果通道不可用,那么对周期寄存器进行写操作,将会直接导致周期寄存器同缓冲器一起闭锁。图13所示的是PWMPER0寄存器:图13PWMPER0寄存器3、PWM通道占空比寄存器PWMDTYxPWMDTYx寄存器也有8个,每一个通
12、道都有一个这样的占空比常数寄存器。这个寄存器的值就决定了相关PWM通道输出波形的占空比。每一个通道的占空比寄存器都是双缓冲的,因此如果当通道被激活后,改变他们的值将不会发生任何作用,除非当下列情况之一发生:*有效的周期结束。*对计数器进行写操作(计数器复位)*通道不可用(PWMEx=0)这样就会使PWM输出波形要么是新波形要么是旧波形,并不会在两者之间进行交替变换。如果通道没有被激活,那么对占空比常数寄存器进行写操作,将会直接导致周期寄存器同缓冲器一起闭锁。当计数值与占空比常数PWMDTY相等时,则比较输出器有效,这时就会将触发器置位,然后PWMCNT继续计数,当计数值与周期常数PWMPER相
13、等时,比较器输出有效,将触发器复位,同时也使PWMCNT复位,结束一个输出周期。PWM工作原理时间:2009-11-2715:44来源:电子设计吧作者:dzsj8点击:490次S12微控制器PWM模块是由独立运行的8位脉冲计数器PWMCNT、两个比较寄存器PWMPER和PWMDTY组成。1、左对齐方式在该方式下,脉冲计数器为循环递增计数,计数初值为0。当PWM使能后,计数器PWMCNT从0开始对时钟信号递增计数,开始一个输出周期。当计数值与占空比常数寄存器PWMDTY相等时,比较器1输出有效,将触发器置位,而PWMCNT继续计数;当计数值与周期常数寄存器PWMPER相等时,比较器2输出有效,将
14、触发器复位,同时PWMCNT也复位,结束一个输出周期。原理参照图14:图14PWM左对齐方式2、中心对齐方式在该方式下,脉冲计数器为双向计数,计数初值为0。当PWM使能后,计数器PWMCNT从0开始对时钟信号递增计数,开始输出一个周期。当计数器与占空比常数寄存器PWMDTY相等时,比较器1输出有效,触发器翻转,而PWMCNT继续计数,当计数值与周期常数PWMPER相等时,比较器2输出有效,此时改变PWMCNT的计数方向,使其递解计数;当PWMCNT再次与PWMDTY相等时,比较器1再一次输出有效,使触发器再次翻转,而PWMCNT继续递减计数,等待PWMCNT减回至0,完成一个输出周期。原理参照
15、图15:图15中心对齐方式3、周期计算方法左对齐方式:输出周期=通道周期PWMPERx中心对齐方式:输出周期=通道周期PWMPERx24、脉宽计算方法左对齐方式:占空比=(PWMPERx-PWMDTYx)/PWMPERx100%中心对齐方式:占空比=PWMDTYx/PWMPERx100%PWM应用实例时间:2009-11-2821:49来源:电子设计吧作者:dzsj8点击:412次PWM初始化步骤总结1、禁止PWMPWME=02、选择时钟PWMPRCLK,PWMSCLA,PWMSCLB,PWMCLK3、选择极性PWMPOL4、选择对齐方式PWMCAE5、选择占空比和周期PWMDTYx,PWMP
16、ERx6、使能PWMPWME=1【例程1】/-/功能说明:MC9S12XS128-PWM例程/使用说明:实现通道3(PTP3)输出频率为1KHz,占空比为50%的方波,用示波器观察/程序设计:电子设计吧【HYPERLINK】/设计时间:2010.01.21/-/#include/*commondefinesandmacros*/#includederivative.h/*derivative-specificdefinitions*/-初始化函数-/-时钟初始化程序-/voidPLL_Init(void)/PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)/锁相环时钟=2*1
17、6*(2+1)/(1+1)=48MHzREFDV=1;/总线时钟=48/2=24MHzSYNR=2;while(!(CRGFLG&0 x08);CLKSEL=0 x80;/选定锁相环时钟/-PWM初始化程序-/voidPWM_Init(void)PWME_PWME3=0 x00;/DisablePWM禁止PWMPRCLK=0 x33;/00110011A=B=24M/8=3M时钟预分频寄存器设置PWMSCLA=150;/SA=A/2/150=10k时钟设置PWMSCLB=15;/SB=B/2/15=100k时钟设置PWMCLK_PCLK3=1;/PWM3-SB时钟源的选择PWMPOL_PPOL
18、3=1;/Duty=HighTime极性设置PWMCAE_CAE3=0;/Left-aligned对齐方式设置PWMCTL=0 x00;/noconcatenation控制寄存器设置PWMPER3=100;/Frequency=SB/100=1K周期寄存器设置PWMDTY3=50;/Dutycycle=50%占空比寄存器设置PWME_PWME3=1;/EnablePWM使能/-主函数-/voidmain(void)/*putyourowncodehere*/PLL_Init();PWM_Init();EnableInterrupts;for(;)_FEED_COP();/*feedsthedo
19、g*/*loopforever*/*pleasemakesurethatyouneverleavemain*/A/D转换模块介绍1时间:2009-11-3022:10来源:电子设计吧作者:dzsj8点击:327次1、A/D转换原理A/D转换的过程是模拟信号依次通过取样、保持和量化、编码几个过程后转换为数字格式。a)取样与保持一般取样与保持过程是同时完成的,取样-保持电路的原理图如图16所示,由输入放大器A1、输出放大器A2、保持电容CH和电子开关S组成,要求AV1*AV2=1。原理是:当开关S闭合时,电路处于取样阶段,电容器充电,由于AV1*AV2=1,所以输出等于输入;当开关S断开时,由于A
20、2输入阻抗较大而且开关理想,可认为CH没有放电回路,输出电压保持不变。图16取样-保持电路取样-保持以均匀间隔对模拟信号进行抽样,并且在每个抽样运算后在足够的时间内保持抽样值恒定,以保证输出值可以被A/D转换器精确转换。b)量化与编码量化的方法,一般有舍尾取整法和四舍五入法,过程是先取顶量化单位,量化单位取值越小,量化误差的绝对值就越小,具体过程在这里就不做介绍了。将量化后的结果用二进制码表示叫做编码。2、A/D转换器的技术指标a)分辨率分辨率说明A/D转换器对输入信号的分辨能力,理论上,n位A/D转换器能区分的输入电压的最小值为满量程的1/2n。也就是说,在参考电压一定时,输出位数越多,量化
21、单位就越小,分辨率就越高。S12的ATD模块中,若输出设置为8位的话,那么转换器能区分的输入信号最小电压为19.53mV。b)转换时间A/D转换器按其工作原理可以分为并联比较型(转换速度快ns级)、逐次逼近型(转换速度适中us级)、双积分型(速度慢抗干扰能力强)。不同类型的转化的A/D转换器转换时间不尽相同,S12的ATD模块中,8位数字量转换时间仅有6us,10位数字量转换时间仅有7us。A/D转换模块介绍2时间:2009-12-0921:32来源:电子设计吧作者:dzsj8点击:334次S12内置了2组10位/8位的A/D模块:ATD0和ATD1,共有16个模拟量输入通道,属于逐次逼近型A
22、/D转换器(这个转换过程与用天平称物的原理相似)。1、功能结构图图17A/D模块功能结构图图17所示的是A/D模块的功能结构,这个功能模块被虚线划分成为图示所示的虚线所隔离的三个部分:IP总线接口、转换模式控制/寄存器列表,自定义模拟量。IP总线接口负责该模块与总线的连接,实现A/D模块和通用I/O的目的,还起到分频的作用;转换模式控制寄存器列表中有控制该模块的所有的寄存器,执行左右对齐运行和连续扫描。自定义模拟量负责实现模拟量到数字量的转换。包括了执行一次简单转换所需的模拟量和数字量。2、HCS12中A/D转化模块特点8/10位精度;7us,10-位单次转换时间.;采样缓冲放大器;可编程采样
23、时间;左/右对齐,有符号/无符号结果数据;外部触发控制;转换完成中断;模拟输入8通道复用;模拟/数字输入引脚复用;1到8转换序列长度;连续转换模式;多通道扫描方式。ATD模块有模拟量前端、模拟量转换、控制部分及结果存储等四部分组成。其中模拟前端包括多路转换开关、采样缓冲器、放大器等,结果存储部分主要有8个16位的存储器和反映工作状态的若干标志位。A/D寄存器说明1ATD0CTL2、时间:2009-12-1112:26来源:电子设计吧作者:dzsj8点击:339次1、ATD0控制寄存器2-ATD0CTL2ATD0CTL2主要控制ATD0的启动、状态标志以及上电模式,对寄存器进行写操作时,将中断当
24、前的转化过程。寄存器ATD0CTL2如图18所示:图18ATD0CTL2寄存器ADPU:A/D使能控制位,相当于一个开关,用来启动/禁止A/D转换1=A/D模块上电0=禁止A/D,以减少功耗AFFC:A/D快速转换完成标志位清零1=快速标志位清零顺序,每次读取结果寄存器自动清零0=正常标志位清零顺序,需要软件方式对状态标志位清零AWAI:A/D等待模式1=等待模式下,ATD继续运行0=等待模式下,ATD停止运行,以降低功耗ETRIGP、ETRIGLE、ETRIGE:ETRIGLEETRIGPETRIGE描述xx0忽略外部触发001下降沿触发011上升沿触发101低电平触发111高电平触发【注意
25、】ETRIGE:外部触发使能控制位,该功能借助引脚AN7,当AN7接收到外部触发时,启动A/D转换,否则不进行转换。0-忽略外部触发;1-有外部触发时开始转换,此时AN7不能用于A/D转换。ASCIE:A/D转化序列转换结束中断使能控制位1=允许ATD转换序列转换结束后发生中断0=禁止ATD中断ASCIF:A/D转换序列转换结束中断标志,只用于读。1=发生中断0=为发生中断A/D寄存器说明2ATD0CTL3时间:2009-12-1212:06来源:电子设计吧作者:dzsj8点击:311次2、ATD0控制寄存器3-ATD0CTL3ATD0CTL3主要控制结果寄存器的映射,设置转换序列的长度,还可
26、以暂时冻结ATD0模块,尤其确定ATD0在BDM状态下的行为。寄存器ATD0CTL3如图19所示:图19ATD0CTL3寄存器S1C、S2C、S4C、S8C:转换序列长度选择位控制位【注意】ATD的每次启动要进行若干次扫描循环,每次扫描循环称为一个转换序列。FIFO:结果寄存器FIFO模式控制位,1=结果寄存器映射到转换序列0=结果寄存器没有映射到转换序列FRZ0、FRZ1:背景调试冻结控制位FRZResponse00IgnoreIFREEZE(冻结模式下继续转换)01Reserved(冻结模式下保留)10Finishconversionthenfreeze(完成转换后冻结)11FreezeI
27、mmediately(冻结模式下立刻冻结)A/D寄存器说明3ATD0CTL4时间:2009-12-1411:50来源:电子设计吧作者:dzsj8点击:298次3、ATD0控制寄存器4-ATD0CTL4ATD0CTL4用于选择时钟,选择采样转换时间以及选择8位/10位转换方式。寄存器ATD0CTL4如图20所示:图20ATD0CTL4寄存器SRES8:A/D精度选择控制位1=将采集到的模拟量以8位二进制数表示0=将采集到的模拟量以10位二进制数表示SMP0、SMP1:采样时间选择控制位SMP1:0采样时间002A/D时钟周期014A/D时钟周期108A/D时钟周期1116A/D时钟周期PPS0:
28、4:5位模数计数器预分频器-分频系数从2到64-A/D时钟计算公式:ATDClock=BusClock/(PRS+1)0.5-A/D时钟频率应满足:【注意】对于AD转换来说,它的转换周期包括采样时间和运算时间。如果频率太高,则采样时间过短。这对于输出阻抗比较大或信号频率比较高的信号来说,就会产生较大的采样误差,那么AD转换的精度就会受较大的影响。A/D寄存器说明4ATD0CTL5时间:2009-12-1719:39来源:电子设计吧作者:dzsj8点击:303次4、ATD0控制寄存器4-ATD0CTL5ATD0CTL5用于选择转换方式,选择转换通道,设置单/多通道转换和单次/连续转换模式以及对齐
29、方式。寄存器ATD0CTL5如图20所示:图20寄存器ATD0CTL5【注意】ATDCTRL5设置成多通道转换后,ATDCTRL3设置采集的通道数,此外ATDCTRL5中还需要设置多通道采集的起始通道。比如采集7个通道,起始通道是1,那么就采集从17通道,如果起始通道是2,就采集27,还有0通道。【注意】在S12系列中,当转换序列长度设置为1(S8C:S1C=0001),MULT=0时,只对一个通道进行一次转换。A/D寄存器说明5ATD0START0、ATD0START1时间:2009-12-2700:47来源:电子设计吧作者:dzsj8点击:263次5、ATD0状态寄存器5-ATD0STAR
30、T0、ATD0START1ATD0START0反映当前的转换通道、A/D转换是否结束、是否有外部触发等;ATD0START1反映转换序列中相应的转换是否完成。寄存器ATD0START0、ATD0START1如图21所示:SCF-转换序列完成标志在单次转换模式时,当转换完成后置位(SCAN=0)在连续转换模式时,当第一次转换完成后置位(SCAN=1),当AFFC=0,写1清零。ETORF-外部触发覆盖标志如果在转换过程中高/低电平出现,置位FIFOR当结果寄存器在读出之前已经被写入时,置位(CCF没有清零)CC2:0转换计数器-3位计数器指向下一个将要转换的通道CCF7-CCF0-独立通道转换完
31、成标志位每个相应的通道转换结束后置位,当相应的A/D结果寄存器被读出时,清零,注意当AFFC位不同时的情况A/D转换应用实例时间:2009-12-2700:51来源:电子设计吧作者:dzsj8点击:351次第十六讲:A/D转换应用实例要让ATD开始转换工作,必须经过以下三个步骤:1.将ADPU置1,使ATD启动;2.按照要求对转换为数、扫描方式、采样时间、时钟频率及标志检查等方式进行设置;3.发出启动命令;如果上电默认状态即能满足工作要求,那么只要将ADPU置1,然后通过控制寄存器发出转换命令,即可实现转换。【例程2】程序描述:由通道ATD0进行单通道A/D转换,转换值在B口显示程序如下:#i
32、nclude/*commondefinesandmacros*/#include/*derivativeinformation*/#pragmaLINK_INFODERIVATIVEmc9s12dg128b/*定义变量*/wordAD_wValue;/AD转换结果/*时钟初始化*/voidPLL_Init(void)/PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)/锁相环时钟=2*16*(2+1)/(1+1)=48MHzREFDV=1;/总线时钟=48/2=24MHzSYNR=2;while(!(CRGFLG&0 x08);CLKSEL=0 x80;/*AD初始化*/vo
33、idAD_Init(void)ATD0CTL2=0 xC0;/启动A/D,快速清零,无等待模式,禁止外部触发,中断禁止ATD0CTL3=0 x20;/转换序列长度为4,NoFIFO,Freeze模式下继续转换ATD0CTL4=0 x85;/8位精度,2个时钟,ATDClock=BusClock*0.5/PRS+1=2MHz;PRS=5,divider=12ATD0CTL5=0 xA0;/右对齐无符号,单通道采样,通道0ATD0DIEN=0 x00;/禁止数字输入/*读取AD转换结果*/voidAD_GetValue(word*AD_wValue)*AD_wValue=ATD0DR0;/读取结果
34、寄存器的值/*主函数*/voidmain(void)PLL_Init();AD_Init();DDRB=0 xFF;PORTB=0 x00;EnableInterrupts;for(;)while(!ATD0STAT1_CCF0);/等待转换结束while(ATDOSTAT1_CCF0=1)AD_GetValue(&AD_wValue);/读取转换结果PORTB=(byte)AD_wValue;/在B口显示转换值Timer模块介绍1时间:2009-12-2911:51来源:电子设计吧作者:dzsj8点击:324次1、简述MC9S12XS128定时器模块与MC9S12DG128ECT部分功能完全
35、类似,以下均以ECT模块介绍xs128定时器模块。HC12增强型捕捉计时器模块在HCS12标准定时器的基础上增加了一些特点,用以扩展它的应用范围,特别是在汽车ABS方面。基准计时器的核心仍然是一个16位的可编程计数器,其时钟源来自一个预分频器。该计时器可以被应用于多个方面,包括在对输入波形进行测量的同时产生一个输出波形。波形的脉宽可以在几微秒到数秒的范围内变化。增强型定时器模块(ECT)的结构框图如下,ECT功能相当于高速的I/O口,由一个4位预分频器、一个16位自由运行计数器,8个16位IC/OC通道,2个16位脉冲累加器以及一个16位模数递减计数器组成。ECT实际上是一个16位的可编程计数
36、器,它的基本时钟频率可以通过预分频器设置,用于产生波形输出,测量输入波形,统计脉冲个数,可以作为定时中断功能和独立时钟基准。2、运行模式停止:由于时钟停止,计时器和计数器均关闭。冻结:计时器和计数器均保持运行,直到TSCR($06)的TSFRZ位被置1。等待:计数器保持运行,直到TSCR($06)的TSWAI位被置1。正常:计时器和计数器均保持运行,直到TSCR($06)的TEN位和MCCTL($26)的MCEN位被分别清0。Timer模块介绍2时间:2009-12-3022:12来源:电子设计吧作者:dzsj8点击:314次IC通道组IC通道组由四个标准的缓冲通道IC0-IC3和四个非缓冲通
37、道IC4-IC7组成,两部分的基本功能都是捕捉外部事件发生的时刻,但是缓冲通道除了ICOC寄存器TCn外,还设有保持寄存器TCnH,此外还在入口设置了延迟计数器,用来提高抗干扰能力。非缓冲通道没有保持寄存器,入口也没有延迟计数器,但每个通道入口设置了一个2输入端的多路器,事件触发信号可以是来自本通道的输入引脚PORTn,也可以是来自其关联通道PORT(n-4)的延迟计数器输出,使用更加灵活。当延迟功能有效时,输入引脚检测到一个有效的边沿后,延迟计数器开始对P时钟(模块时钟)进行计数,当到达设定的计数值后,延迟计数器在其输出端有条件地产生一个脉冲,这个条件就是延迟前后的引脚电平相反。这样可以避免
38、对窄输入脉冲做出反应。延迟计数结束后,计数器自动清除。输入信号两个有效边沿之间的持续时间必须大于设定的延迟时间。在ECT中,所有IC通道均设置了覆盖保护功能,可以通过寄存器ICOVW设置是否允许某个通道用新的捕捉结果覆盖上一个结果。对于缓冲的IC通道PT0-PT3,还具有锁存与队列两种工作方式。在锁存方式下,每个有效的引脚事件只将自由定时器的值放入捕捉寄存器TCn,而TCn到保持寄存器TCnH的传送必须依赖递减模数计数器回0或者其他强制锁存命令才能实现,这时IC的工作情形与第6章的TIM模块相似。在队列方式下(图7-2),TCn与TCnH形成了一个类似先进先出的队列,每个捕捉结果从TCn进入,
39、然后随着下一个捕捉结果的到来移入TCnH,程序可以从TCnH取得结果,然而这个队列是开放的,即程序也可以直接从TCn取得捕捉结果。队列方式为CPU提供了充分的响应时间。由于PAC0-3与IC0-3共享相同的引脚,而且共享入口的逻辑,因此在两种方式下,PAI与IC都可以同时工作,对同一引脚进行记录,前者记录脉冲或者边沿的数量,后者记录具体的时刻。模数递减计数器16位递减模数计数器(MDC)可以用作时钟基准,产生周期性的中断请求,也可用于将IC寄存器和脉冲累加器的值锁存到各自的保持寄存器中。锁存动作可以通过程序设定为周期性的或一次性的。MDC的时钟频率可通过独立的定标器设定,内部设有定时常数寄存器
40、,可以实现自动重装载,但MDC的常数寄存器与MDC计数器使用相同的地址,加载时通过特殊的时序实现。每当MDC回0时,将在给定的时间段内控制贮和PAI寄存器的内容向各自的缓冲寄存器传输。反映了MDC在IC、PAI系统中的作用。脉冲累加器脉冲累加器由4个8位的通道PAC0-PAC3组成,可以通过级联形成两个16位通道PACA、PACB,它可以统计输入引脚上出现的有效边沿的数量,也可以统计有效电平出现的累计时间。各个通道的8位保持寄存器是与4个缓冲IC通道相关联的,它们共享边沿检测与延迟电路。当IC工作在两种不同的队列方式时,PAC保持寄存器也处于不同的工作状态,在锁存方式下,PCnH的加载依靠MD
41、C计数器或者强制命令实现,而在队列方式下,则依靠IC通道的TCnH读命令。可见在ECT模块下,IC与PAI的工作联系更加紧密。此外,脉冲累加器还有饱和记忆功能,当8位的脉冲累加器计数超过$FF后记忆保持,而不回滚到0,这时,计数值$FF意味着计数已经达到或超过255,如不需要,该功能可以关闭。这可以用来监视某个通道的计数值是否已经达到预定的目标值。值得注意的是,PACl、PAC0级联后,输入引脚为PT0,而PAC3、PAC2级联后,输入引脚并不是PT2,而是PT7,这样可以与那些无ECT的MCU保持一致性。Timer寄存器说明1TSCR1、2时间:2009-12-3123:42来源:电子设计吧
42、作者:dzsj8点击:391次1、定时器/计数器系统控制寄存器1(TSCR1)寄存器偏移量:$0006Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TENTSWAITSFRZTFFCA0000可在任何时候读或写。TSCR1寄存器是定时器模块的总开关,它决定模块是否启动以及在中断等待、BDM方式下的行为,还包括标志的管理方式。其各位的意义如下:TEN:定时器使能位,此外它还控制定时器的时钟信号源。要使用定时器模块的ICOC功能,必须将TEN置位。如果因为某种原因定时器没有使能,脉冲累加器也将得不到ECLK64时钟,因为ECLK64是由定时器的分频器产生的,这种情况下,脉冲累加器
43、将不能进行引脚电平持续时间的累加。0:定时器/计数器被禁止,有利于降低功耗。1:定时器/计数器使能,正常工作。TSWAI:等待模式下计时器关闭控制位。【注意】定时器中断不能用于使MCU退出等待模式。0:在中断等待模式下允许MCU继续运行。1:当MCU进入中断等待模式时,禁止计时器。TSFRZ:在冻结模式下计时器和计数器停止位。0:在冻结模式下允许计时器和计数器继续运行。1:在冻结模式下禁止计时器和计数器,用于仿真调试。【注意】TSFRZ不能停止脉冲累加。TFFCA:定时器标志快速清除选择位。0:定时器标志普通清除方式。1:对于TFLGl($0E)中的各位,读输入捕捉寄存器或者写输出比较寄存器会
44、自动清除相应的标志位CnF。对于TFLG2($0F)中的各位,任何对TCNT寄存器($04、$05)的访问均会清除TOF标志;任何对PACN3和PACN2寄存器($22,$23)的访问都会清除PAFLG寄存器($21)中的PAOVF和PAIF位。任何对PACN1和PACN0寄存器($24,$25)的访问都会清除PBFLG寄存器($21)中的PBOVF位。【说明】这种方式的好处是削减了另外清除标志位的软件开销。此外,必须特别注意避免对标志位的意外清除。2、计时器系统控制寄存器2(TSCR2)寄存器偏移量:$000DBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TOI000TCR
45、EPR2PR1PR0可在任何时候读或写。TOI:定时器/计时器溢出中断使能。0:中断被禁止。1:当TOF标志被置位时发出硬件中断请求。【注意】TOF标志位在TFLG中TCRE:定时器/计数器复位使能。该位在通道7成功输出比较之后允许时钟计数器复位。该操作模式类似于递增型计数器。0:计数器复位禁止,计数器自由计数。1:通道7成功输出比较后计数器将被复位。【说明】如果TC7=$0000并且TCRE=1,TCNT将继续保持$0000。如果TC7=$FFFF并且TCRE=1,当TCNT从$FFFF到$0000之间被复位后TOF将永远不被置位。PR2,PR1,PR0:计数器预分频选择。这三位所决定的分频
46、因子如下表所示。分频因子选择PR2PR1PR0PrescaleFactor0001001201040118100161013211064111128【说明】新设定的分频因子不会立即起作用,直到下一个触发沿到来那里所有预分频计数器值均为零。Timer寄存器说明2TCTLl-TCTL4时间:2010-01-0713:03来源:电子设计吧作者:dzsj8点击:235次3、控制寄存器(TCTLl-TCTL4)TCTLl-TCTL4分为两组,分别对IC和OC电路进行设定,每组16个二进制位,每两个二进制位管理一个通道。其中TCTLl、TCTL2设定各个OC通道匹配时的动作,包括切断OC与输出引脚的联系,
47、而TCTL3、TCTL4设定IC响应引脚的何种动作,包括禁止IC的响应。TCTL1寄存器偏移量:$0008Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0OM7OL7OM6OL6OM5OL5OM4OL4TCTL2寄存器偏移量:$0009Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0OM3OL3OM2OL2OM1OL1OM0OL0可在任何时候读或写。OMn、OLn分别设定输出方式和输出电平,这8对控制位(OM7、OL7-OMO、OL0)编码后用于指定通道比较成功后的输出动作。如果每对当中至少有一个为1,对应引脚就固定为相应通道的输出,而与DDRT中的对应位无关。
48、当二者同时为0时,OC与输出引脚断开。输出比较动作设置OMnOLn动作00定时器与引脚断开01OCn输出翻转10OCn输出清零11OCn输出置1TCTL3寄存器偏移量:$000ABit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0EDG7BEDG7AEDG6BEDG6AEDG5BEDG5AEDG4BEDG4ATCTL4寄存器偏移量:$000BBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0EDG3BEDG3AEDG2BEDG2AEDG1BEDG1AEDG0BEDG0A可在任何时候读或写。各个控制位的作用如下:EDGnB、EDGnA输入捕捉边沿控制位,这8对控制位(E
49、DG7B、EDG7AEDG0B、EDG0A)对输入捕捉的边沿检测电路进行设置。当二者同时为0时,IC与输入引脚断开。输入捕捉边沿检测电路设置EDGnBEDGnA边沿检测电路设置00禁止捕捉01捕捉上升沿10捕捉下降沿11上升沿下降沿均捕捉【注意】为了使OMn、OLn指定的引脚动作有效,OC7M中的对应位必须清0。若要使用16位脉冲累加器A和B,并使它们分别独立于ICOC7和ICOC0,必须设置对应的IOSn:1、OMn=0、OLn=0,同时寄存器OC7M中的OC7M7、OC7M0位必须清0。Timer寄存器说明3TFLG1/2、TIE时间:2010-01-0815:10来源:电子设计吧作者:d
50、zsj8点击:263次4、主定时器中断标志寄存器(TFLG1、TFLG2)TFLG1寄存器偏移量:$000EBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0C7FC6FC5FC4FC3FC2FC1FC0FTFLG2寄存器偏移量:$000FBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TOF0000000所示的TFLG1、TFLG2为中断标志寄存器,其中TFLG1对应8个ICOC通道,当某CnF=1时说明对应的ICOC通道有动作,表明该通道有中断事件发生。TFLG2只有一个标志位TOF,作为核心计数器的中断请求标志。当TOF=1时说明核心计数器溢出。要清除某个标
51、志位,只需向该位写1,向某位写0不影响该位的状态。当TSCR中的TFFCA位置位时,读IC通道或写OC通道($10-$1F)将自动清除该通道标志CnF,对TCNT的任何访问将自动清除TFLG2。CnF:ICOC通道中断请求标志。0:上次清除标志以来,ICOC通道没有有效动作。1:ICOC通道已经出现动作。将寄存器ICSYS($2B)中的TFMOD位和ICOVW寄存器($2A)联合使用,可以使定时器在两次捕捉后才产生中断,而不是每次捕捉均产生动作。两次捕捉结果分别在捕捉和保持寄存器里面。TOF:定时器溢出标志,当16位自由定时器从$FFFF回滚到$0000时,该位置位。将$80写入到TFLG2将
52、自动清除该位(写1清零)。详见前面关于TMSK2中TCRE控制位的解释。5、计时器中断使能寄存器(TIE)寄存器偏移量:$000CBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0C7IC6IC5IC4IC3IC2IC1IC0I可在任何时候读或写。TIE寄存器中的位与状态寄存器TFLG1中的标志位相对应。如果将TIE中的某位清0,相应的标志位就不能引起硬件中断。如果被置1,相应的标志位就可以引起中断。C7I-C0I:输入捕捉/输出比较“x”中断使能。Timer寄存器说明4TIOS、TC0-TC7时间:2010-01-0923:35来源:电子设计吧作者:dzsj8点击:242次6、
53、ICOC选择寄存器(TIOS)寄存器偏移量:$0000Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0IOS7IOS6IOS5IOS4IOS3IOS2IOS1IOS0TIOS寄存器用于指定各个通道的功能,即工作于IC还是OC方式。当某位IOSn=0时,对应的通道n为输入捕捉(1C)通道,否则当IOSn=1时,通道n为输出比较(OC)通道。其中的各位可以在任何时候写入或读出。【说明】上电后该寄存器默认为$00,TSCR中的TEN默认也为0,这时所有通道处于通用IO方式,将TEN置位后各个通道进入IC方式,要将某些通道设置成OC方式,必须对TIOS进行设置,即将有关位置1。设置成O
54、C的通道其引脚具有降功率驱动功能,设置成IC的通道具有内部上拉功能,但上电后均处于关闭状态,可以根据需要启用。7、ICOC寄存器(TC0-TC7)每个IC或OC通道都设置有一个16位的寄存器,对于IC(输入捕捉)通道,当通道的边沿探测器检测到由EDGnA、EDGnB指定的条件时,将自由定时器的值捕捉到寄存器TCn,随后程序可以读取和处理;对于OC(输出比较)通道,程序将预定的时刻写入到TCn,当自由定时器的值与其相等时,触发由OMn、OLn所指定的输出动作。定时器模块共有TC7-TC0等8个16位ICOC寄存器。TC0寄存器偏移量:$0010-$0011Bit15Bit14Bit13Bit12
55、Bit11Bit10Bit9Bit8Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TC1寄存器偏移量:$0012-$0013Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TC2寄存器偏移量:$0014-$0015Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TC3寄存器偏移量:$0016-$0017Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8Bit7Bit6B
56、it5Bit4Bit3Bit2Bit1Bit0TC4寄存器偏移量:$0018-$0019Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TC5寄存器偏移量:$001A-$001BBit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TC6寄存器偏移量:$001C-$001DBit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TC7寄
57、存器偏移量:$001E-$001FBit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0Timer寄存器说明5TCNT、OC7M时间:2010-01-1219:43来源:电子设计吧作者:dzsj8点击:326次8、定时器核心寄存器(TCNT)寄存器偏移量:$0004-$0005Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TCNT是递增计数器,它不停地对内部时钟信号计数、程序可随时读取,但在普通模式下禁止写入。TCN
58、T应按字访问,分别访问高、低字节可能得到错误的结果。【说明】在特殊模式下,TCNT可写,但因为写操作与预分频器时钟不同步,TCNT寄存器写入后,其第一个周期可能是一个不同的值。9、输出比较通道7屏蔽寄存器(OC7M)寄存器偏移量$0002Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0OC7M7OC7M6OC7M5OC7M4OC7M3OC7M2OC7M1OC7M0可在任何时候读或写。前面已经说明,OC7具有特殊地位,它匹配时可以直接改变其他7个输出引脚的状态,并覆盖各个引脚原来的匹配动作结果,寄存器OC7M决定哪些通道将处于OC7的管理之下。OC7M中的各位与PORTT口寄存器
59、的各位一一对应。当通过TIOS将某个通道设定为输出比较时,将OC7M中的相应位置1,对应的引脚就是输出状态,与DDR中的对应位的状态无关。但OC7Mn并不改变DDR相应位的状态。OC7M具有更高的优先级,它优于通过TCTL1和TCTL2寄存器中的OMn和OLn设定的引脚动作,若OC7M中某个位置1,就会阻止相应引脚上由OM和OL设定的动作。10、输出比较通道7数据寄存器(OC7D)寄存器偏移量:$0003Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0OC7D7OC7D6OC7D5OC7D4OC7D3OC7D2OC7D1OC7D0可在任何时候读或写。OC7M对于其他OC输出引脚
60、的管理限于将某个二进制值送到对应引脚,这个值保存在寄存器OC7D中的对应位中。当OC7匹配成功后,若某个OC7Mn=1,则内部逻辑将OC7Dn送到对应引脚。OC7D中的各位与PORTT口寄存器的各位一一对应。当通道7比较成功时,如果OC7M中的某个位为1,OC7D中的对应位将被输出到PORTT的对应引脚。当OC7M中的某个位为1时,通道7匹配成功的动作如果与通道6-0的动作发生在同一个周期,前者将覆盖后者。因此各个通道的动作将依赖于OC7D中各个位的设置。Timer模块应用实例1时间:2010-01-1320:43来源:电子设计吧作者:dzsj8点击:285次输入捕捉(IC)编程步骤:初始化函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度绿色交通设施民间房屋抵押贷款合同范本
- 二零二五年度金融行业员工劳动合同标准范本
- 二零二五年度文化市场运营合作协议
- 离职协议书陷阱解析:2025年度员工离职合同范本与修订
- 2025年度股权激励方案实施合同范本
- 2025年汽修店转让协议范本:含维修技师团队及培训体系
- 2025年长沙货运从业资格证模拟考试题目
- 2025年南宁货运从业资格证考试app
- 护士节护士代表发言稿
- 《小法斗》幼儿园小学少儿美术教育绘画课件创意教程教案
- 2025年湖南铁道职业技术学院单招职业技能测试题库新版
- 2025年度科技园区委托中介代理出租管理合同
- 新媒体运营课件
- 2025年湖南省高职单招《职业技能测试》核心考点试题库500题(重点)
- 《鼹鼠的月亮河》考试题附答案
- 2025年内蒙古巴彦淖尔市交通投资集团有限公司招聘笔试参考题库附带答案详解
- 2025年无锡科技职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 《复式条形统计图》(说课稿)-2023-2024学年四年级下册数学人教版
- 2025年人教版新教材英语小学三年级下册教学计划(含进度表)
- GB/T 45083-2024再生资源分拣中心建设和管理规范
- 相互批评意见500条【5篇】
评论
0/150
提交评论