第8章 ATD模块和PWM模块v4_第1页
第8章 ATD模块和PWM模块v4_第2页
第8章 ATD模块和PWM模块v4_第3页
第8章 ATD模块和PWM模块v4_第4页
第8章 ATD模块和PWM模块v4_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

第八章ATD模块和PWM模块

§8-1模数转换ATD模块

§8-2脉冲宽度调制PWM模块内容提要:§8-1模数转换ATD模块A/D转换的基本概念模数转换定义 将时间连续、幅值也连续的模拟信号转换为时间离散、幅值也离散的数字信号。模数转换精度 模数转换精度是指二进制的位数。9S12的AD模块有两种精度可选,分别为8位精度(0—255)和10位精度(0—1023)。逐次逼近型A/D转换器的原理 逐次逼近型A/D由一个比较器和D/A转换器通过逐次比较逻辑构成,就是将输入模拟信号与不同的参考电压作多次比较,使转换所得的数字量在数值上逐次逼近输入模拟量对应值。

。逐次逼近式A/D转换器的工作原理可用天平秤重过程作比喻来说明。若有四个砝码共重15克,每个重量分别为8、4、2、1克。设待秤重量Wx=13克,可以用下表步骤来秤量:顺序砝码重比较判断暂时结果

18g8g<13g保留8g2(8+4)g12g<13g保留12g3(8+4+2)g14g>13g撤消12g4(8+4+1)g13g=13g保留13gAD口。ATD子系统输入或通用输入引脚。复位后默认为通用I/O输入引脚并且只能做输入。ATD模块使能后,用作模拟输入。MC9S12DG128有16根AD引脚对应于两个独立的ATD模块:ATDm(m=0或1)

。9S12的A/D模块主要特性8位/10位可选择的转换精度;速度快;采样时间可编程;左对齐/右对齐的数据格式,有符号/无符号的转换结果;转换完毕可产生中断;可使用AN7外部触发A/D转换。9S12XDT512的A/D模块外部引脚

VRH、VRL:A/D转换模块的参考高电压和参考低电压。实验板上,VRH和VRL分别接AVDD和AGND。

VDDA、VSSA:A/D模块提供电源。实验板上,VDDA接到AVDD,VSSA接到AGND。

AN7/ETRIG/PAD7:模拟量输入通道7,通用数字输入端口。它也可以被配置为A/D转换的外部触发引脚。

AN6/PAD6-AN0/PAD0:模拟量输入通道6-0,通用数字输入端口。不可以被用作外部触发引脚。注意:两个独立的ATD模块:ATDm(m=0或1)书上和9S12数据手册上,没有带m,实际用CodeWarrier编程时需带上m。A/D寄存器转换结果寄存器控制寄存器状态寄存器书上和9S12数据手册上,没有带m。实际用CodeWarrier编程时需带上m。控制寄存器2—ATDmCTL2(m=0或1)ADPU:A/D模块的电源管理:1=正常模式,使能A/D模块;0=低功耗模式,禁止A/D模块。AFFC:标志位是否快速清零:1=对转换结果寄存器访问会自动清除转换完成标志CCF;0=正常模式,访问结果寄存器前读状态寄存器1可以清除转换完成标志CCF。AWAI:等待时是否进入低功耗模式:1=进入,0=正常工作。ETRIGLE、ETRIGP:外部触发的边沿/极性控制。ETRIGE:上两位的使能位。是否允许在AN7输入外部触发信号。1=允许,0=禁止。ASCIE:A/D队列转换完成中断允许位:1=允许;0=禁止。ASCIF:A/D队列转换完成中断标志。BIT76543210RADPUAFFCAWAIETRIGLEETRIGPETRIGEASCIEASCIFWRESET00000000SCAN为ATDmCTL5中的连续转换队列模式选择位控制寄存器3—ATDmCTL3(m=0或1)BIT76543210R0S8CS4CS2CS1CFIFOFZR1FZR0WRESET00100000S8C、S4C、S2C、S1C:定义转换队列的长度。默认长度为4。FIFO:结果寄存器先进先出模式。1=FIFO模式,转换结果是连续存放的;0=非FIFO模式,转换结果根据转换队列顺序放在对应的寄存器中。FRZ1、FRZ0:背景调试冻结模式允许。这两个控制位就决定了,当遇到断点时,A/D模块怎样反应。转换序列长度当调试程序时,如果遇到断点转换序列长度就是需要转换的通道数比如:通道0,1,2作为AD采集通道则转换序列为3,即S2C=1,S1C=1非FIFO模式,在控制寄存器5ATD0CTL5中:设CCCBCA=000,转换序列从通道0开始;ATD0DR0,ATD0DR1,ATD0DR2存放转换结果设CCCBCA=010,转换序列从通道2开始。仍然是ATD0DR0,ATD0DR1,ATD0DR2存放转换结果控制寄存器4—ATDmCTL4(m=0或1)SRES8:转换精度选择。1=8位精度,0=10位精度。SMP1、SMP0:采样时间选择。可选择2、4、8、16个A/D时钟周期。PRS4、PRS3、PRS2、PRS1、PRS0:A/D时钟分频因子的选择。A/D时钟的计算公式如下图。注意,A/D模块的时钟频率要在500KHz和2MHz之间,所以在选择分频因子时一定要注意。BIT76543210RSRES8SMP1SMP0PRS4PRS3PRS2PRS1PRS0WRESET00000101•最大A/D时钟=2.0MHz(最小A/DCLOCK=0.5MHz)采样时间选择SMP[1:0]采样时间002A/D时钟周期014A/D时钟周期108A/D时钟周期1116A/D时钟周期除25位模数计数器预分频器+1PRS0-PRS4系统时钟A/D时钟A/D时钟2,4,8,16

时钟周期总是2个时钟周期转换时间计算举例:(假设2MHZA/D时钟频率)例1:转换时间=InitialSampleTime+ProgrammedSampleTime+ResolutionPeriod=2+2+10=14A/DClocks=7uSec例2:转换时间=InitialSampleTime+ProgrammedSampleTime+ResolutionPeriod=2+16+10=28A/DClocks=14uSec控制寄存器5—ATDmCTL5(m=0或1)DJM:16位结果寄存器数据的对齐方式。1=右对齐,0=左对齐。DSGN:结果寄存器中数据有无符号。1=有符号,0=无符号。SRES8、DJM和DSGN三位配合起来使用,决定了结果寄存器中数据的格式,一共有8种情况。SCAN:连续转换队列的模式。此位定义了A/D转换是连续进行还是只进行一次。1=连续队列转换;0=单次队列转换。MULT:当这位为0时,ATD的队列控制器只从指定的输入通道进行采样,可以使用ATDCTL5寄存器中的CC、CB和CA三位来指定需要采样的模拟量输入通道。当这位为1时,则对多个的通道进行采样,每次采样的通道数量由S8C、S4C、S2C和S1C控制位来指定,第一个采样通道由CC、CB和CA控制位来指定,其它采样通道由通道选择码CC、CB和CA的增加来决定。CC、CB、CA:模拟输入通道选择码。和MULT配合使用。BIT76543210RDJMDSGNSCANMULT0CCCBCAWRESET00000000状态寄存器0—ATDmSTAT0(m=0或1)SCF:队列完成标志。置位条件:当一个队列转换完毕后;如果处在SCAN模式,则每次都置位。清零条件:对此位写一;写ATDmCTL5,开始一个新的对列;AFFC=1(标志快速清除)且读结果寄存器。ETORF:外部触发溢出标志。置位条件:处于边沿触发模式时,如果第一个边沿触发的队列转换正在进行,而这时却检测到了第二个有效的边沿。清零条件:对此位写一;写控制寄存器2、3或4,终止当前队列;写控制寄存器5,开始一个新队列。FIFOR:FIFO溢出标志。如果转换完成标志(CCF)在没有被清零时结果寄存器被写入新值(覆盖),则置位。清零条件:对此位写一;写控制寄存器5,开始一个新队列。1=有FIFO溢出,0=无FIFO溢出。CC2、CC1、CC0:转换计数器。代表了哪个结果寄存器将要接收当前转换的结果。非FIFO模式(FIFO=0),这3位的初始值为0,计数完成后又会回到初始值。FIFO模式(FIFO=1),转换计数器处于循环计数状态。BIT76543210RSCF0ETORFFIFOR0CC2CC1CC0WRESET00000000状态寄存器1—ATDmSTAT1(m=0或1)CCFx:x通道的转换完成标志。1=完成队列中的第x个转换;0=转换未完成。清零条件:写控制寄存器5,开始一个新队列;AFFC=1,对结果寄存器访问;AFFC=0,先读状态寄存器1,然后再访问结果寄存器。BIT76543210RCCF7CCF6CCF5CCF4CCF3CCF2CCF1CCF0WRESET00000000输入允许寄存器--ATDmDIEN(m=0或1)IENx:通道x输入数字允许。这8个控制位控制了从模拟量输入端口到数据寄存器的数字输入缓冲区。1=缓冲区有效,AD模块当作数字IO接口使用(只作为输入);0=无效。 当端口作为模拟量输入端口时,也可以打开数字缓冲区,但是会增加功耗。BIT76543210RIEN7IEN6IEN5IEN4IEN3IEN2IEN1IEN0WRESET00000000端口数据寄存器PORTADm(m=0或1)PTADx:A/D模块的第x个通道(ANx)的数字输入。当对应通道的数字输入允许时,此位返回了相应引脚上的电平逻辑值。注意,引脚上的电平必须和VRH或VRL匹配,否则将返回一个不确定的值。如果相应通道的输入缓冲区无效(IENx=0),读取操作只返回1。复位后,寄存器值等于$FF。注意,PORTAD端口模拟量和数字量是可以复用的。当输入模拟量时,会把模拟信号直接送到A/D转换器;当输入数字量时,会把外部数字信号送到PORTAD寄存器以供读取。BIT76543210RPTAD7PTAD6PTAD5PTAD4PTAD3PTAD2PTAD1PTAD0WRESET11111111A/D转换结果寄存器—ATDmDRx(m=0或1)ATDmDR0—ATDmDR7:0—7通道的结果寄存器。A/D转换的结果需要从这几个寄存器中读取。每个16位寄存器可以分成2个8位的寄存器来读取,分别为ATDmDRxH和ATDmDRxL。注意转换结果在这8个16位寄存器中的存储格式。以10位左、右对齐为例:左对齐10位数据右对齐10位数据另外还要注意有符号数据和无符号数据的区别。√√√√√√√√√√××××××××××××√√√√√√√√√√A/D转换综合举例使用实验板上可调电位器产生模拟量,通过A/D进行转换,结果显示在数码管上。数码管字模(共阳)012345670xc00xf90xa40xb00x990x920x820xf889abcdef0x800x900x880x830xc60xa10x860x8e数码管字模(共阴)01234567~0xc0~0xf9~0xa4~0xb0~0x99~0x92~0x82~0xf889abcdef~0x80~0x90~0x88~0x83,~0xc6~0xa1~0x86~0x8eunsignedchara[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳极数码管的段码(字模)0123456789ABCDEF#defineSEG8PTT#defineS0PTP_PTP0#defineS1PTP_PTP1#defineS2PTP_PTP2#defineS3PTP_PTP3unsignedintd,d1,d2,d3,d4;voiddisplay(unsignedinta1,unsignedinta2,unsignedinta3,unsignedinta4);voidDelay(unsignedinti){ while(i--);}voidmain(void){ EnableInterrupts; DDRT=0XFF; DDRP=0XFF; //设置数码管输出IO均为输出

d=0; ATD1CTL2=0x80;//0b10000000:使能AD,正常清除标志,不使用外部触发

ATD1CTL3=0x08;//0b00001000:转换队列长度设为1、非FIFO模式

ATD1CTL4=0x25;//0b00100101:10位精度、12分频

ATD1CTL5=0xA7;//0b10100111:右对齐、无符号、连续扫描模式、单通道采样//指定采样通道为ATD1模块的通道7。//每次设置ATD1CTL5即刻重新启动ATD1模块的AD转换工作 for(;;) {while(!ATD1STAT0_SCF);//等待当前队列转换完成

d=ATD1DR0; //读结果寄存器中的值以便使用//因前面设置为非FIFO模式,转换结果根据转换队列顺序放在对应的结果寄存器中,即ATD1//模块转换队列中第一次AD转换的结果放在第一个结果寄存器ATD1DR0中,ATD1模块转换队//列中第二次AD转换的结果放在第二个结果寄存器ATD1DR1中,以此类推。此处ATD1模块转换//队列长度之前设置为1。ATD1STAT0_SCF=1; //清除队列完成标志

d1=d/1000;d2=(d/100)%10; d3=(d/10)%10;d4=d%10; display(d1,d2,d3,d4);}}voiddisplay(unsignedinta1,unsignedinta2,unsignedinta3,unsignedinta4){ S0=0;S1=1; S2=1; S3=1; SEG8=a[a1]; Delay(1000); S0=1;S1=0;S2=1; S3=1; SEG8=a[a2]; Delay(1000); S0=1;S1=1; S2=0; S3=1; SEG8=a[a3]; Delay(1000); S0=1;S1=1; S2=1; S3=0; SEG8=a[a4]; Delay(1000);}§8-2脉冲宽度调制PWM模块PWM的基本概念PWM(PulseWidthModulate)即脉宽调制,脉宽调制波是一种可用程序来控制波形占空比、周期、相位的波形。它在电动机驱动、D/A变换、音调生成等场合有着广泛的应用。0%10%50%90%99%PWM模块的外部引脚共8个外部引脚(112脚封装的单片机)

PWM0—6(4、3、2、1、112、111、110)

PWM7(109)通道7周期和占空比计数器通道6周期和占空比计数器...通道0周期和占空比计数器管脚7使能选择极性选择对齐方式选择管脚6管脚0...极性、对齐方式的区别CAEx=0:左对齐CAEx=1:居中对齐PWM模块的极性和对齐方式极性控制:每个PWM通道都对应一个极性设置位,决定了PWM波的输出首先是高电平还是低电平。当PPOLx被置位时,对应的通道首先输出高电平,直到计数器计数到占空比寄存器的值后变为低电平;反之则首先输出低电平,直到计数器计数到占空比寄存器的值后变为高电平。BIT76543210RPPOL7PPOL6PPOL5PPOL4PPOL3PPOL2PPOL1PPOL0WRESET00000000PWMPOL:PWM极性寄存器对齐方式控制:

此寄存器控制每个PWM通道输出波形的对齐方式,可以是左对齐或者居中对齐。如果CAEx=1,则对应通道的输出波形为居中对齐方式;如果CAEx=0,则为左对齐方式。注意只有当对应通道被禁止输出时,才可以设置此寄存器。CAEx: 1=对应x通道为居中对齐模式

0=对应x通道为左对齐模式PWMCAE:居中对齐允许寄存器PWM模块的波形控制每个通道的寄存器都有一个8位计数器、一个8位周期寄存器和一个8位占空比寄存器。输出波形的周期受周期寄存器的控制,当计数器的计数值等于周期寄存器的值时,PWM波周期结束。PWM的波形还跟占空比寄存器、输出极性和对齐方式有关。PWMCNTx计数寄存器在PWM通道工作时也可以被写入,但是暂时产生无效的波形。x通道计数寄存器--PWMCNTx周期寄存器--PWMPERx占空比寄存器--PWMDTYx开始周期TPWMTPWM占空比TDutyPWMDTYxPWMPERxPWMPERxfClock,TClock8-bitCounterPWMCNTx时钟8-bitCompare=PWMDTYx8-bitCompare=PWMPERx0x000x00Pinx当8位计数器的值等于PWMDTYx(dutycycle寄存器)时,电平从有效跳到无效;

当8位计数器的值等于PWMPERx(周期寄存器)时,电平从无效跳到有效,然后计数器清0,重新开始计数CAEx=0:左对齐开始周期TPWMTPWM占空比TDutyPWMDTYxPWMPERxfClock,TClock0x000x00CAEx=1:居中对齐PWM模块的时钟选择四个时钟源CLOCKA、CLOCKB、CLOCKSA、CLOCKSB。其中CLOCKA(B)可以把总线时钟进行1、2、4、8、16、32、64、128分频。Clock

A

的预分频因子通过PWMPRCLK寄存器中的PCKA2、PCKA1

和PCKA0

来选择,Clock

B

的预分频因子通过PWMPRCLK

寄存器中的PCKB2、PCKB1

和PCKB0

来选择。总线时钟CLOCKACLOCKBCLOCKSACLOCKSB分频分频分频分频BIT76543210R0PCKB2PCKB1PCKB00PCKA2PCKA1PCKA0WRESET00000000PWMPRCLK:PWM预分频时钟选择寄存器PCKB2PCKB1PCKB0ClockB时钟000总线时钟001总线时钟/2010总线时钟/4011总线时钟/8100总线时钟/16101总线时钟/32110总线时钟/64111总线时钟/128PCKA2PCKA1PCKA0ClockA时钟000总线时钟001总线时钟/2010总线时钟/4011总线时钟/8100总线时钟/16101总线时钟/32110总线时钟/64111总线时钟/128

CLOCKSA(SB)从CLOCKA(B)进行分频的比例因子可以为2、4、6、8、10、……,最大可以进行512分频(PWMSCLA=0或PWMSCLB=0)。计算公式为:CLOCKSA=CLOCKA/(2*PWMSCLA)CLOCKSB=CLOCKB/(2*PWMSCLB)BIT76543210RBIT76543210WRESET00000000BIT76543210RBIT76543210WRESET00000000PWMSCLA:PWM比例因子寄存器APWMSCLB:PWM比例因子寄存器B

通道0、1、4、5可选CLOCKA或CLOCKSA;通道2、3、6、7可选CLOCKB或CLOCKSB。时钟选择寄存器--PWMCLKPCLK7:PWM通道7时钟源选择。1=ClockSB;0=ClockB。PCLK6:PWM通道6时钟源选择。1=ClockSB;0=ClockB。PCLK5:PWM通道5时钟源选择。1=ClockSA;0=ClockA。PCLK4:PWM通道4时钟源选择。1=ClockSA;0=ClockA。PCLK3:PWM通道3时钟源选择。1=ClockSB;0=ClockB。PCLK2:PWM通道2时钟源选择。1=ClockSB;0=ClockB。PCLK1:PWM通道1时钟源选择。1=ClockSA;0=ClockA。PCLK0:PWM通道0时钟源选择。1=ClockSA;0=ClockA。PWM模块的允许控制PWM的允许位相当于“开关”,可以允许和禁止相应通道的PWM输出。每个PWM通道都对应一个允许位(PWMEx),只有PWMEx=1时,对应的通道才输出波形。计数器计数结束的那一刻,只要PWMEx为高电平,则会自动开始下一个波形的输出。BIT76543210RPWME7PWME6PWME5PWME4PWME3PWME2PWME1PWME0WRESET00000000PWME:PWM允许寄存器左对齐的输出波型频率和占空比计算PWM波形频率和占空比的计算:PWMx频率=Clock(A,B,SA,orSB)/PWMPERx若Polarity=0(PPOLx=0)DutyCycle=[(PWMPERx-PWMDTYx)/PWMPERx]×100%若Polarity=1(PPOLx=1)DutyCycle=[PWMDTYx/PWMPERx]×100%下面举一个左对齐输出的例子:假设时钟源频率=10MHz(周期=100ns),PPOLx=0,PWMPERx=4,PWMDTYx=1。所以,PWMx的频率=10MHz/4=2.5MHz,PWMx的周期=400ns,PWMx的占空比=3/4×100%=75%。居中对齐的输出波型频率和占空比计算

用时钟源的频率除以周期寄存器中值的2倍,得到的结果就是当前PWM输出波形的频率。PWMxFrequency=Clock(A,B,SA,orSB)/(2×PWMPERx)若Polarity=0(PPOLx=0)DutyCycle=[(PWMPERx-PWMDTYx)/PWMPERx]×100%若Polarity=1(PPOLx=1)DutyCycle=[PWMDTYx/PWMPERx]×100%下面举一个居中对齐输出的例子:假设时钟源频率=10MHz(周期=10ns),PPOLx=0,PWMPERx=4,PWMDTYx=1。所以,PWMx的频率=10MHz/(2*4)=1.25MHz,PWMx的周期=800ns,PWMx的占空比=3/4×100%=75%。PWM模块的通道级联如果需要PWM输出波形的精度更高,则可以把2个8位PWM通道级联起来组成1个16位通道。PWMCTL寄存器中有4个控制位,可以完成这个级联的功能。CON67、CON45、CON23和CON01可以把相应的两个通道级联起来。注意级联后有高8位和低8位的区别,控制寄存器的区别。控制寄存器--PWMCTL关断寄存器--PWMSDNPWM7ENA:PWM紧急关断允许 当此位为1时,通道7会被强制配置为输入端口,并且允许紧急关断。只有当此位为1时,寄存器中的其它位才有意义。PWM7INL: 紧急关断通道7的有效电平。1=高电平,0=低电平。PWM7IN: PWM通道7的输入电平状态。PWMLVL: PWM紧急关断后的输出电平。1=高,0=低。PWMRSTRT: PWM重新启动。只有在当PWM通道7处于无效状态(非紧急关闭)时,才可以重新启动PWM模块。把PWMRSTRT置一,当计数器返回0时,PWM通道才开始运行。PWMIE: PWM中断允许。1=允许,0=禁止。PWMIF: PWM中断标志。当PWM7ENA被置位时,PWM通道7上电平的任意变化将产生中断并使PWMIF置位。

1=PWM7IN输入有变化。0=PWM7IN输入无变化。PWM模块的紧急关断PWM模块特性8个周期、占空比可编程的PWM通道;专用的PWM计数器;PWM功能的软件使能和禁止;软件选择脉冲极性;PWM波形输出对齐方式分为左对齐和居中对齐;可以两个通道级联以获得更高的精度;可选择4个时钟源,4个时钟源均为独立的分频设置;有紧急关断功能;PWM模块的初始化步骤禁止PWMDisablePWM

PWME选择时钟Selectclock(prescalerandscale)forthePWM

PWMPRCLK,PWMSCLA,PWMSCLB,PWMCLK选择极性Selectpolarity

PWMPOL选择对齐模式Selectcenterorleftalignedmode

PWMCAE对占空比和周期编程Programdutycycleandperiod

PWMDTYx,PWMPERx使能PWM通道EnableusedPWMchannels

PWMEPWM模块的应用举例在电子和自动化技术应用中,单片机和D/A是经常需要同时使用的,在一般的应用中外接昂贵的D/A转换器则会增加成本。可利用单片机的PWM功能实现D/A转换。PWM模块的应用举例利用PWM5通道来做DA转换,输出变化的电压控制小灯的亮度。灯会从暗逐渐变亮。voidPWMInit(void){PWMPOL=0x20; //脉冲先高后低PWMCLK=0x20; //使用sa时钟源PWMPRCLK=0x07; //时钟a为总线8分频PWMCAE=0x00; //通道5为左对齐输出模式PWMCTL=0x00; //单独使用通道5,非级联PWMSCLA=0x05; //ClockSA=ClockA/(2*PWMSCLA),SA为3kHzPWMPER5=0x64; //设定周期}voidmain(void){ unsignedchari; unsignedlongj=10000; SET_PLL(); //设置锁相环

EnableInterrupts; PWMInit(); //初始化PWM for(i=0;i<0x64;i++) { while(j--); j=10000; while(j--); j=10000; PWMDTY5=i;//设定占空比

PWME=0x20;//使能PWM }}PWM相关寄存器汇总允许控制寄存器--PWME

当PWMEx被置位后,PWM输出就会立即开始。但是直到PWM模块时钟的下一个周期到来之时,才可以输出正确的波形,而在这之前的波形可能会是无效的。 当处于级联模式时,8个8位PWM通道组成4个16位的PWM通道,PWME1、PWME3、PWME5和PWME7对这4个通道进行控制,而其它控制位处于无效状态。PWMEx:通道有效选择位。1=允许PWM输出,0=禁止。极性寄存器--PWMPOL PWMPOL寄存器随时都可以进行设置。如果某PWM通道在输出波形的过程中,波形的极性发生了改变,那么在两组波形的连接处可能会出现缩短或者拉伸了的不正常波形。PPOLx:通道x的输出极性。1=先高后低,0=先低后高。时钟选择寄存器--PWMCLKPCLK7:PWM通道7时钟源选择。1=ClockSB;0=ClockB。PCLK6:PWM通道6时钟源选择。1=ClockSB;0=ClockB。PCLK5:PWM通道5时钟源选择。1=ClockSA;0=ClockA。PCLK4:PWM通道4时钟源选择。1=ClockSA;0=ClockA。PCLK3:PWM通道3时钟源选择。1=ClockSB;0=ClockB。PCLK2:PWM通道2时钟源选择。1=ClockSB;0=ClockB。PCLK1:PWM通道1时钟源选择。1=ClockSA;0=ClockA。PCLK0:PWM通道0时钟源选择。1=ClockSA;0=ClockA。预分频时钟选择寄存器

此寄存器用来选择ClockA和B的预分频因子。

PWMPRCLK寄存器随时都可以进行设置。如果某PWM通道在输出波形的过程中,此通道的所使用时钟的频率发生了改变,那么在两组波形的连接处可能会出现缩短或者拉伸了的不正常波形。PCKB2、PCKB1、PCKB0:ClockB预分频因子的选择PCKA2、PCKA1、PCKA0:ClockA预分频因子的选择居中对齐允许寄存器--PWMCAE

此寄存器控制每个PWM通道输出波形的对齐方式,可以是左对齐或者居中对齐。如果CAEx=1,则对应通道的输出波形为居中对齐方式;如果CAEx=0,则为左对齐方式。注意只有当对应通道被禁止输出时,才可以设置此寄存器。CAEx: 1=对应x通道为居中对齐模式

0=

温馨提示

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

评论

0/150

提交评论