您的位置:首页 > 其它

手把手教你写S12XS128程序(6)--PWM寄存器说明5

2010-10-11 22:32 239 查看
1、PWM通道计数寄存器 PWMCNTx

PWMCNTx 寄存器共有 8个,每一个通道都有一个8位PWM加/减双向计数器,通道级联后可变成16位PWM加/减双向计数器。下面以PWMCNT0为例对 PWMCNTx 寄存器进行介绍。
PWMCNT0 寄存器如图 12 所示:



图 12 PWMCNT0 寄存器

计数器以所选时钟源的频率运行。计数器在任何时候都可以被读,而不影响计数,也不影响对 PWM 通道的操作。

任何值写入 PWMCNT0 寄存器都会导致计数器复位置 0,且其计数方向会 被设置为向上计数,并且会立刻从缓冲器载入任务和周期值,并会根据翻转极性的设置来改变输出。当计数器达到计数值后,会自动清零。只有当通道使能后,计数器才开始计数。

2、PWM通道周期寄存器PWMPERx

PWMPERx 寄存器共有 8 个,每一个通道都有一个这样的周期寄存器。这个 寄存器的值就决定了相关 PWM 通道的周期。每一个通道的周期寄存器都是双缓 冲的,因此如果当通道使能后,改变他们的值,将不会发生任何作用,除非当下列情况之一发生:

*有效的周期结束。

*对计数器进行写操作(计数器复位)

*通道不可用(PWMEx = 0)

这样就会使 PWM 输出波形要么是新波形要么是旧波形,并不会在两者之间 进行交替变换。如果通道不可用,那么对周期寄存器进行写操作,将会直接导致 周期寄存器同缓冲器一起闭锁。图 13 所示的是 PWMPER0 寄存器:



图 13 PWMPER0 寄存器

3、PWM通道占空比寄存器PWMDTYx

PWMDTYx 寄存器也有 8 个,每一个通道都有一个这样的占空比常数寄存 器。这个寄存器的值就决定了相关 PWM 通道输出波形的占空比。每一个通道的 占空比寄存器都是双缓冲的,因此如果当通道被激活后,改变他们的值将不会发生任何作用,除非当下列情况之一发生:

*有效的周期结束。

*对计数器进行写操作(计数器复位)

*通道不可用(PWMEx = 0)

这样就会使 PWM 输出波形要么是新波形要么是旧波形,并不会在两者之间 进行交替变换。如果通道没有被激活,那么对占空比常数寄存器进行写操作,将会直接导致周期寄存器同缓冲器一起闭锁。

当计数值与占空比常数 PWMDTY 相等时,则比较输出器有效,这时就会将触发器置位,然后 PWMCNT 继续计数,当计数值与周期常数 PWMPER 相等时,比较器输出有效,将触发器复位,同时也使 PWMCNT 复位,结束一个输出周期。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: