jufr12315 发表于 2021-7-3 23:40:32

请教STC8G2K64S4增强型PWM如何输出100%的占空比?


周期为100,设置在0时输出高电平。
看了波形还有个很短的低电平

liyang121316 发表于 2021-7-4 08:26:48

调到100时直接将电平拉高

jufr12315 发表于 2021-7-4 14:42:32

liyang121316 发表于 2021-7-4 08:26
调到100时直接将电平拉高

你是说T2也调成100吗?
T1 T2相同时是输出低电平

lgg88 发表于 2021-7-4 15:05:35

100%不就是直接输出高吗?

jufr12315 发表于 2021-7-4 18:30:47

lgg88 发表于 2021-7-4 15:05
100%不就是直接输出高吗?

是的,设置不了,就只能直接判断设置的占空比是不是100%,是就关闭PWM直接输出高了

womenhome 发表于 2021-7-5 20:32:15



直接关闭PWM功能。

用IO方式,置1


小李非刀 发表于 2021-7-6 15:01:12

STC8G2K64S4的45路15位PWM,连续输出0或1有3种方法(以PWM00为例):
1、禁止输出PWM,对应IO称为普通IO,禁止PWM输出后,需要这个IO输出高或低,自行设置。
PWM00CR |= 0x80;   //ENO=1:允许PWM输出
delay_ms(5);       //输出5ms
P00 = 1;         //连续输出高电平
PWM00CR &= ~0x80;//ENO=0:禁止PWM输出
delay_ms(5);      //关闭PWM, P0.0输出高电平5ms
               
PWM00CR |= 0x80;   //ENO=1:允许PWM输出
delay_ms(5);      //输出5ms
P00 = 0;         //连续输出低电平
PWM00CR &= ~0x80;//ENO=0:禁止PWM输出
delay_ms(5);      //关闭PWM, P0.0输出高电平5ms

2、PWM00T2设置输出高电平时刻(一般我设置为0),
   PWM00T1设置输出低电平时刻,PWM00T1-PWM00T2就是输出高电平时间。
   如果将PWM00T1设置的数值比周期值大,则不会输出低电平,输出100%占空比。

3、使用“PWM通道电平保持控制寄存器 PWMnHLD”直接设置输出高或低,
   这个寄存器就是专门用于设置连续输出高或低的。
   PWM00HLD = 0x00;//PWM正常输出
   PWM00HLD = 0x01;//PWM输出连续低电平
   PWM00HLD = 0x02;//PWM输出连续高电平

jufr12315 发表于 2021-7-8 21:08:57

小李非刀 发表于 2021-7-6 15:01
STC8G2K64S4的45路15位PWM,连续输出0或1有3种方法(以PWM00为例):
1、禁止输出PWM,对应IO称为普通IO, ...

感谢版主,选择了第二种,比较方便

dtdzlujian 发表于 2021-11-22 07:22:00

T1 设置低电平时间 T2设置高电平时间 是在整个pwm周期之内来调整吗?多路输出的话,这样可以错开相位是吗?

小李非刀 发表于 2021-11-24 18:02:13

dtdzlujian 发表于 2021-11-22 07:22
T1 设置低电平时间 T2设置高电平时间 是在整个pwm周期之内来调整吗?多路输出的话,这样可以错开相位是吗? ...

是的,相位随意设置。
页: [1]
查看完整版本: 请教STC8G2K64S4增强型PWM如何输出100%的占空比?