STC15W4K32S4系列概述及寄存器简介

STC15W4K32S4系列新增6通道增强型带死区控制高精度

PWM波形发生器应用

    STC15W4K32S4系列的单片机集成了一组(各自独立6路)增强型的PWM波形发生器。PWM波形发生器内部有一个15位的PWM计数供6路PWM使用,用户可以设置每路PWM的初始电平。另外,PWM波形发生器为每路PWM又设计了两个控制波形翻转的计数器T1/T2,可以非常灵活的每路PWM的高低电平宽度,从而达到对PWM的占空比以及PWM的输出延迟控制的目的。由于6路PWM是各自独立的,且每路的初始状态可以进行设定,所以用户可以将其中的任意两路配合起来使用,即可实现互补对称输出以及死区控制等特殊应用。

    增强型的PWM波形发生器还设计了对外部异常事件(包括外部端口P2.4的电平异常、比较器比较结果异常)进行监控的功能,可用于紧急关闭PWM输出。PWM波形发生器还可以在15位的PWM计数器归零时发出外部事件(ADC转换).

STC15W4K32S4系列增强型PWM输出端口定义如下:

[PWM2:P3.7,PWM3:P2.1,PWM4:P2.2,PWM5:P2.3,PWM6:P1.6,PWM7:P1.7]

    每路PWM的输出端口都可以使用特殊功能寄存器位CnPINSEL分别独立的切换到第二组

[PWM2_2:P2.7,PWM3_2:P4.5,PWM4_2:P4.4,PWM5_2:P4.2,PWM6_2:P0.7,PWM7_2:P0.6]

    所有与PWM相关的端口,在上电后均为高阻输入态,必须在程序中将这些口设置为双向口货强推挽输出模式才可以正常输出波形

端口模式设置相关特殊功能寄存器:

符号描述地址位地址及符号初始值
B7B6B5B4B3B2B1B0
P1MM1P1模式配置191H0000,0000
P1M0P1模式配置092H0000,0000
P0M1P0模式配置193H0000,0000
P0M0P0模式配置094H0000,0000
P2M1P2模式配置195H0000,0000
P2M0P2模式配置096H0000,0000
P3M1P3模式配置1B10000,0000
P3M0P3模式配置0B20000,0000
P4M1P4模式配置1B30000,0000
P4M0P4模式配置0B40000,0000

端口模式设置:

PXM1PXM0模式
00准双向口
01强推挽输出
10高阻输入
11开漏输出

  若需要正常使用与PWM相关的端口,则需要将相应的端口设置为双准向口或强推挽输出。

  增强型PWM波形发生器相关的特殊功能寄存器:

符号描述地址位地址及符号初始值
B7B6B5B4B3B2B1B0
P_SW2端口配置寄存器BAHEAXSFR000S4_SS3_SS2_S0000,0000
PWMCFGPWM配置F1H0000,0000
PWMCRPWM控制F5H0000,0000
PWMIF中断标志F6HX000,0000
PWMFDCRPWM外部异常控制F7HXX00,0000
PWMCHPWM计数器高位FFF0HPWMCH[14:8]X000,0000
PWMCLPWM计数器低位FFF1HPWMCl[7:0]0000,0000
PWMCKSPWM时钟选择FFF2HSELT2,PS[3:0]XXX0,0000
PWM2T1HPWM2T1计数高位FF00HPWM2T1H [14:8]X000,0000
PWM2T1LPWM2T1计数低位FF01HPWM2T1HL[7:0]0000,0000
PWM2T2HPWM2T2计数高位FF02HPWM2T2H[14:8]X000,0000
PWM2T2LPWM2T2计数低位FF03HPWM2T2L[7:0]0000,0000
PWM2CRPWM2控制FF04HXXXX,0000
PWM3T1HPWM3T1计数高位FF10HPWM3T1H[14:8]X000,0000
PWM3T1LPWM3T1计数低位FF11HPWM3T1L[7:0]0000,0000
PWM3T2HPWM3T2计数高位FF12HPWM3T2H[14:8]X000,0000
PWM3T2LPWM3T2 计数低位FF13HPWM3T2L[7:0]0000,0000
PWM3CRPWM3控制FF14HXXXX,0000
PWM4T1HPWM4T1计数高位FF20HPWM4T1H[14:8]X000,0000
PWM4T1LPWM4T1计数低位FF21HPWM4T1L[7:0]0000,0000
PWM4T2HPWM4T2计数高位FF22HPWM4T2H[14:8]X000,0000
PWM4T2LPWM4T2计数低位FF23HPWM4T2L[7:0]0000,0000
PWM4CRPWM4控制FF24HXXXX,0000
PWM5T1HPWM5T1计数高位FF30HPWM5T1H[14:8]X000,0000
PWM5T1LPWM5T1计数低位FF31HPWM5T1L[7:0]0000,0000
PWM5T2HPWM5T2计数高位FF32HPWM5T2H[14:8]X000,0000
PWM5T2LPWM5T2计数低位FF33HPWM5T2L[7:0]0000,0000
PWM5CRPWM5控制FF34HXXXX,0000
PWM6T1HPWM6T1计数高位FF40HPWM5T1H[14:8]X000,0000
PWM6T1LPWM6T1计数低位FF41HPWM5T1L[7:0]0000,0000
PWM6T2HPWM6T2计数高位FF42HPWM5T2H[14:8]X000,0000
PWM6T2LPWM6T2计数低位FF43HPWM5T2L[7:0]0000,0000
PWM6CRPWM6控制FF44HXXXX,0000
PWM7T1HPWM7T1计数高位FF50HX000,0000
PWM7T1LPWM7T1计数低位FF51H0000,0000
PWM7T2HPWM7T2计数高位FF52HX000,0000
PWM7T2LPWM7T2计数低位FF53H0000,0000
PWM7CRPWM7控制FF54HXXXX,0000

端口配置寄存器P_SW2

地址:BAH 初始值:0000,0000B

B7B6B5B4B3B2B1B0
EAXSFR000S4_SS3_SS2_s

EAXSFR:扩展SFR访问控制使能

0:MOVX A,@DPTR/MOVX @DPTR,指令的操作对象为扩展RAM(XRAM)

1:MOVX A,@DPTR/MOVX @DPTR,指令的操作对象为扩展SFR(XSFR)

  注意:若要访问PWM在扩展RAM区的特殊功能寄存器,必须先将EAXSFR位置为1

BIT6,BIT5,BIT4为内部测试使用,用户必须填0

PWM配置寄存器PWMCFG

地址:F1H 初始值:0000,0000B

B7B6B5B4B3B2B1B0
CBTADCC7INIC6INIC5INIC4INIC3INIC2INI

CBTADC:PWM计数器归零时(CBIF==1时)触发ADC转换

0:PWM计数器归零时不触发ADC转换

1:PWM计数器归零时自动触发ADC转换。(注:前提是PWM和PWM必须使能,即ENPWM1&ADCON1)

CnINI:设置PWM输出端口的初始电平

0:PWM输出端口初始电平为低电平

1:PWM输出端口的初始电平为高电平

PWM控制寄存器PWMCR

地址:F5H 初始值:0000,0000B

B7B6B5B4B3B2B1B0
ENPWMECBIENC70ENC60ENC50ENC40ENC30ENC20

ENPWM使能增强型PWM波形发生器

0:关闭PWM波形发生器

1:使能PWM波形发生器,PWM计数器开始计数

ENCBI:PWM计数器归零中断使能位

0:关闭PWM计数器归零中断(CBIF依然会被硬件置位)

1:使能PWM计数器归零中断

ENCnO:PWM输出使能位

0:相应PWM通道的端口为GPIO

1:相应PWM通道的端口为PWM输出口,受PWM波形发生器控制

PWM中断标志寄存器PWMIF

地址:F6H 初始值:0000,0000B

B7B6B5B4B3B2B1B0
CBIFC7IFC6IFC5IFC4IFC3IFC2IF

CBIF:PWM计数器归零中断标志位

当PWM计数器归零时,硬件自动将此位置1。当CBIF==1,程序会跳转到相应中断入口执行中断服务。需要软件清零。

CnIF:第n通道的PWM中断标志位

可设置在翻转点1和翻转点2触发CnIF(详见ECnT1SI和ECnT2SI)。当PWM发生翻转时硬件自动将此位置1。当EPWMnI==1,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。

PWM外部异常控制寄存器PWMFDCR

地址:F7H 初始值:XX00,0000B

B7B6B5B4B3B2B1B0
ENFDFLTFLIOEFDIFDCMPFDIOFDIF

ENFD:PWM外部异常检测功能控制位

0:关闭PWM的外部异常检测功能

1:使能PWM的外部异常检测功能

FLTFLIO:发生PWM外部异常时对PWM输出口控制位

0:发生外部异常时,PWM的输出口不做任何改变

1:发生外部异常时,PWM的输出口立即被设置为高阻输入模式。(只有ENCnO==1所对应的端口才会被强制悬空)

EFDI:PWM异常检测中断使能位

0:关闭PWM异常检测中断(FDIF依然会被硬件置位)

1:使能PWM异常检测中断

FDCMP:设定PWM异常检测源为比较器的输出

0:比较器与PWM无关

1:当比较器的输出由低变高时,触发PWM异常

FDIO:设定PWM异常检测源为端口P2.4的状态

0:P2.4的状态与PWM无关

1:当P2.4的电平由低变高时,触发PWM异常

FDIF:PWM异常检测中断标志位

当发生PWM异常(比较器的输出由低变高或者P2.4的电平由低变高)时,硬件自动将此位置1.

当EFDI==1时,程序会跳转到相应中断入口执行中断服务程序,需要软件清零。

PWM计数器的高字节PWMCH(高7位)

地址:FFF0H(XSFR) 初始值:X000,0000B

B7B6B5B4B3B2B1B0
PWMCH[14:8]

PWM计数器的低字节PWMCL(低8位)

地址:FFF1H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWMCL[7:0]

PWM计数器位一个15位的寄存器,可设定1~32767之间的任意值作为PWM的周期。PWM波形发生器内部的计数器从0开始计数,每个PWM时钟周期递增1,当内部计数器的计数值达到[PWMCH,PWMCL]所设定的PWM周期时,PWM波形发生器内部的计数器将会从0重新开始开始计数,硬件会自动将PWM归零中断中断标志位CBIF置1,若ECBI==1,程序将跳转到相应中断入口执行中断服务程序。

PWM时钟选择寄存器PWMCKS

地址:FFF2H(XSFR) 初始值:xxx0,0000B

B7B6B5B4B3B2B1B0
SELT2PS[3:0]

SELT2:PWM时钟源选择

0:PWM时钟源为系统时钟经分频器分频之后的时钟

1:PWM时钟源为定时器2的溢出脉冲

PS[3:0]:系统时钟预分频参数。当SELT2==0时,PWM时钟为系统时钟/(PS[3:0]+1)

PWM2的第一次翻转计数器的高字节PWM2T1H

地址:FF00H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
-PWM2T1H[14:8]

PWM2的第一次翻转计数器的低字节PWM2T1L

地址:FF01H 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM2T1L[7:0]

PWM2的第二次翻转计时器的高字节PWM2T2H

地址:FF02H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
PWM2T2H[14:8]

PWM2的第二次翻转计时器的低字节PWM2T2L

地址:FF03H 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM2T2L[7:0]

PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。

PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。

PWM2_PS的控制寄存器PWM2CR

地址:FF04H(XSFR) 初始值:XXXX,0000B

B7B6B5B4B3B2B1B0
----PWM_PSEPWM2IEC2T2SIEC2T1SI

PWM_PS:PWM2输出管脚选择位

0:PWM2的输出管脚为PWM2:P3.7

1:PWM2的输出管脚为PWM2_2:P2.7

EPWM2I:PWM2中断使能控制位

0:关闭PWM2中断

1:使能PWM2中断,v当C2IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。

EC2T2SI:PWM2的T2匹配发生波形翻转时的中断控制位

0:关闭T2翻转时中断

1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C2IF置1,此时若EPWM2I==1,则程序将跳转到相应中断入口执行中断服务程序。

EC2T1SI:PWM2的T1匹配发生波形翻转时的中断控制位

0:关闭T1翻转时中断

1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C2IF置1,此时若EPWM2I==1,则程序将跳转到相应中断入口执行中断服务程序。

PWM3的第一次翻转计数器的高字节PWM3T1H

地址:FF10H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
PWM3T1H[14:8]

PWM3的第一次翻转计数器的低字节PWM3T1L

地址:FF11H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM3T1L[7:0]

PWM3的第二次翻转计时器的高字节PWM3T2H

地址:FF12H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
-PWM3T2H[14:8]

PWM3的第二次翻转计时器的低字节PWM3T2L

地址:FF13H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM3T2L[7:0]

PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。

PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。

PWM3的控制寄存器PWM3CR

地址:FF14H(XSFR) 初始值:xxxx,0000B

B7B6B5B4B3B2B1B0
----PWM3_PSEPWM3IEC3T2SIEC3T1SI

PWM3_PS:PWM3输出管脚选择位

0:PWM3的输出管脚为PWM3:P2.1

1:PWM3的输出管脚为PWM3_2:P4.5

EPWM3I:PWM3中断使能控制位

0:关闭PWM3中断

1:使能PWM3中断,当C3IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。

EC3T2SI:PWM3的T2匹配发生波形翻转时的中断控制位

0:关闭T2翻转时中断

1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C3IF置1,此时若EPWM3I==1,则程序将跳转到相应中断入口执行中断服务程序。?

EC3T1SI:PWM3的T1匹配发生波形翻转时的中断控制位

0:关闭T1翻转时中断

1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C3IF置1,此时若EPWM3I==1,则程序将跳转到相应中断入口执行中断服务程序。

PWM4的第一次翻转计数器的高字节PWM4T1H

地址:FF20H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
-PWM4T1H[14:8]

PWM4的第一次翻转计数器的低字节PWM4T1L

地址:FF21H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM4T1L[7:0]

PWM4的第二次翻转计时器的高字节PWM4T2H

地址:FF22H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
-PWM4T2H[14:8]

PWM4的第二次翻转计时器的低字节PWM4T2L

地址:FF23H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM4T2L[7:0]

PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。

PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。

PWM4的控制寄存器PWM4CR

地址:FF24H(XSFR) 初始值:xxxx,0000B

B7B6B5B4B3B2B1B0
--PWM4_PSEPWM4IEC4T2SIEC4T1SI

PWM4_PS:PWM4输出管脚选择位

0:PWM4的输出管脚为PWM4:P2.2

1:PWM4的输出管脚为PWM4_2:P4.4

EPWM4I:PWM4中断使能控制位

0:关闭PWM4中断

1:使能PWM4中断,当C4IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。

EC4T2SI:PWM4的T2匹配发生波形翻转时的中断控制位

0:关闭T2翻转时中断

1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C4IF置1,此时若EPWM4I==1,则程序将跳转到相应中断入口执行中断服务程序。

EC4T1SI:PWM4的T1匹配发生波形翻转时的中断控制位

0:关闭T1翻转时中断

1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C4IF置1,此时若EPWM4I==1,则程序将跳转到相应中断入口执行中断服务程序。

PWM5的第一次翻转计数器的高字节PWM5T1H

地址:FF30H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
-PWM5T1H[14:8]

PWM5的第一次翻转计数器的低字节PWM5T1L

地址:FF31H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM5T1L[7:0]

PWM5的第二次翻转计时器的高字节PWM5T2H

地址:FF32H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
-PWM5T2H[14:8]

PWM5的第二次翻转计时器的低字节PWM5T2L

地址:FF33H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM5T2L[7:0]

PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。

PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转.

PWM5的控制寄存器PWM5CR

地址:FF34H(XSFR) 初始值:xxxx,0000B

B7B6B5B4B3B2B1B0
----PWM5_PSEPWM5IEC5T2SIEC5T1SI

PWM5_PS:PWM5输出管脚选择位

0:PWM5的输出管脚为PWM5:P2.3

1:PWM5的输出管脚为PWM5_2:P4.2

EPWM5I:PWM5中断使能控制位

0:关闭PWM5中断

1:使能PWM5中断,当C5IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。

EC5T2SI:PWM5的T2匹配发生波形翻转时的中断控制位

0:关闭T2翻转时中断

1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C5IF置1,此时若EPWM5I==1,则程序将跳转到相应中断入口执行中断服务程序。

EC5T1SI:PWM5的T1匹配发生波形翻转时的中断控制位

0:关闭T1翻转时中断

1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C5IF置1,此时若EPWM5I==1,则程序将跳转到相应中断入口执行中断服务程序。

PWM6的第一次翻转计数器的高字节PWM6T1H

地址:FF40H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
-PWM6T1H[14:8]

PWM6的第一次翻转计数器的低字节PWM6T1L

地址:FF41H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM6T1L[7:0]

PWM6的第二次翻转计时器的高字节PWM6T2H

地址:FF42H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
PWM6T2H[14:8]

PWM6的第二次翻转计时器的低字节PWM6T2L

地址:FF43H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM6T2L[7:0]

PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。

PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。

PWM6的控制寄存器PWM6CR

地址:FF44H(XSFR) 初始值:xxxx,0000B

B7B6B5B4B3B2B1B0
----PWM6_PSEPWM6IEC6T2SIEC6T1SI

PWM6_PS:PWM6输出管脚选择位

0:PWM6的输出管脚为PWM6:P1.6

1:PWM6的输出管脚为PWM6_2:P0.7

EPWM6I:PWM6中断使能控制位

0:关闭PWM6中断

1:使能PWM6中断,当C6IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。

EC6T2SI:PWM6的T2匹配发生波形翻转时的中断控制位

0:关闭T2翻转时中断

1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C6IF置1,此时若EPWM6I==1,则程序将跳转到相应中断入口执行中断服务程序。?

EC6T1SI:PWM6的T1匹配发生波形翻转时的中断控制位

0:关闭T1翻转时中断

1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C6IF置1,此时若EPWM6I==1,则程序将跳转到相应中断入口执行中断服务程序。

PWM7的第一次翻转计数器的高字节PWM7T1H

地址:FF50H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
-PWM7T1H[14:8]

PWM7的第一次翻转计数器的低字节PWM7T1L

地址:FF51H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM7T1L[7:0]

PWM7的第二次翻转计时器的高字节PWM7T2H

地址:FF52H(XSFR) 初始值:x000,0000B

B7B6B5B4B3B2B1B0
-PWM7T2H[14:8]

PWM7的第二次翻转计时器的低字节PWM7T2L

地址:FF53H(XSFR) 初始值:0000,0000B

B7B6B5B4B3B2B1B0
PWM7T2L[7:0]

PWM波形发生器设计了两个用于控制PWM波形翻转的15位计数器,可设定1~32767之间的任意值。

PWM波形发生器内部的计数器的计数值与T1/T2所设定的值相匹配时,PWM的输出波形将发生翻转。

PWM7的控制寄存器PWM7CR

地址:FF54H(XSFR) 初始值:xxxx,0000B

B7B6B5B4B3B2B1B0
----PWM7_PSEPWM7IEC7T2SIEC7T1SI

PWM7_PS:PWM7输出管脚选择位

0:PWM7的输出管脚为PWM7:P1.7

1:PWM7的输出管脚为PWM7_2:P0.6

EPWM7I:PWM7中断使能控制位

0:关闭PWM7中断

1:使能PWM7中断,当C7IF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。

EC7T2SI:PWM7的T2匹配发生波形翻转时的中断控制位

0:关闭T2翻转时中断

1:使能T2翻转时中断,当PWM波形发生器内部计数值与T2计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C7IF置1,此时若EPWM7I==1,则程序将跳转到相应中断入口执行中断服务程序。

EC7T1SI:PWM7的T1匹配发生波形翻转时的中断控制位

0:关闭T1翻转时中断

1:使能T1翻转时中断,当PWM波形发生器内部计数值与T1计数器所设定的值相匹配时,PWM的波形发生翻转,同时硬件将C7IF置1,此时若EPWM7I==1,则程序将跳转到相应中断入口执行中断服务程序。

PWM波形发生器中断控制

PWM波形发生器中断相关的寄存器

IP2中断优先级B5H---PX4PPWMFDPPWMPSPIPS2XXX0,0000
PWMCRPWM控制F5HENPWMECBIENC70ENC60ENC50ENC40ENC30ENC200000,0000
PWMIFPWM中断标志F6H-CBIFC7IFC6IFC5IFC4IFC3IFC2IFX000,0000
PWMFDCRPWM外部异常控制F7H--ENFDFLTFLI0EFDIPDCMPFDI0FDIFXX00,0000
PWM2CRPWM2控制FF04H----PWM2_PSEPWM2IEC2T2SIEC2T1SIXxxx,0000
PWM3CRPWM3控制FF14H----PWM3_PSEPWM3IEC3T2SIEC3T1SIXxxx,0000
PWM4CRPWM4控制FF24H----PWM4_PSEPWM4IEC4T2SIEC4T1SIXxxx,0000
PWM5CRPWM5控制FF34H----PWM5_PSEPWM5IEC5T2SIEC5T1SIXxxx,0000
PWM6CRPWM6控制FF44H----PWM6_PSEPWM6IEC6T2SIEC6T1SIXxxx,0000
PWM7CRPWM7控制FF54H----PWM7_PSEPWM7IEC7T2SIEC7T1SIXxxx,0000

中断向量地址及中断控制

中断名称入口地址优先设置中断请求中断允许位中断标识清楚方式
PWM中断00B3H(22)PPWMCBIFENPWM/ECBI/EA需软件清除
C2IFENPWM/EPWM2I/EC2T2SI||EC2T1SI/EA需软件清除
C3IFENPWM/EPWM3I/EC3T2SI||EC3T1SI/EA需软件清除
C4IFENPWM/EPWM4I/EC4T2SI||EC4T1SI/EA需软件清除
C5IFENPWM/EPWM5I/EC5T2SI||EC5T1SI/EA需软件清除
C6IFENPWM/EPWM6I/EC6T2SI||EC6T1SI/EA需软件清除
C7IFENPWM/EPWM77I/EC3T2SI||EC7T1SI/EA需软件清除
PWM异常检测中断00BBH(23)PPWMFDFDIFENPWM/ENFD/EFDI/EA需软件清除

两通道CCP/PCA/增强PWM

相关SFR

符号描述地址位地址及符号初始值
B7B6B5B4B3B2B1B0
CCOND8HCFCR----CCF1CCF000xx,xx00
CMODD9HCIDL---CPS2CPS1CPS0ECF0XXX,0000
CCAPM0DAH-EC0M0CCAPP0CCAPN0MAT0T0G0PWM0ECCF0X000,0000
CCAPM1DBH-EC0M1CCAPP1CCAPN1MAT1T0G1PWM1ECCF1X000,0000
CLE9H0000,0000
CHF9H0000,0000
CCAPOLEAH0000,0000
CCAPOHFAH0000,0000
CCAP1LEBH0000,0000
CCAP1HFBH0000,0000
PCA_PWM0F2HEES0_1EES0_0PWM0_B9HPWM0_B8HPWM0_B9LPWM0_B8LEPCOHEPCOL0000,0000
PCA_PWM1F3HEES1_1EES1_0PWM1_B9HPWM1_B8HPWM1_B9LPWM1_B8LEPC1HEPC1L0000,0000

STC15W4K32S4的两路CCP与STC12F2K60S2的CCP完全兼容,并在STC12F2K60S2的CCP的基础上对PWM的功能进行增强,不仅可将STC15W4K32S4的CCP设置为6/7/8位PWM,还可设置为10位PWM。10位PWM的低字节仍用CCAP0L/CCAP1L设置(CCAP0H/CCAP1H为重装值),10位PWM的高两位使用[PWM0_B9L,PWM0_B8L]/?[PWM1_B9L,PWM1_B8L]进行设置([PWM0_B9H,PWM0_B8H]/[PWM1_B9H,PWM1_B8H]?为重装值)。

[EBS0_1,EBS0_0]:

00:PWM0为8位PWM模式

01:PWM0为7位PWM模式

10:PWM0为6位PWM模式

11:PWM0为10位PWM模式

[EBS1_1,EBS1_0]:

00:PWM1为8位PWM模式

01:PWM1为7位PWM模式

10:PWM1为6位PWM模式

11:PWM1为10位PWM模式

10位PWM的比较值由{PWMn_B9L,PWMn_B8L,CCAPnL[7:0]}组成,10重装值由{PWMn_B9H,PWMn_B8H,CCAPnH[7:0]}组成

注意:在更新重装值时,必须先写高两位PWMn_B9H,PWMn_B8H,后写低八位CCAPnH

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有资小家书小本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值