请教STC8G2K64S4增强型PWM如何输出100%的占空比?
周期为100,设置在0时输出高电平。
看了波形还有个很短的低电平 调到100时直接将电平拉高 liyang121316 发表于 2021-7-4 08:26
调到100时直接将电平拉高
你是说T2也调成100吗?
T1 T2相同时是输出低电平 100%不就是直接输出高吗? lgg88 发表于 2021-7-4 15:05
100%不就是直接输出高吗?
是的,设置不了,就只能直接判断设置的占空比是不是100%,是就关闭PWM直接输出高了
直接关闭PWM功能。
用IO方式,置1
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输出连续高电平
小李非刀 发表于 2021-7-6 15:01
STC8G2K64S4的45路15位PWM,连续输出0或1有3种方法(以PWM00为例):
1、禁止输出PWM,对应IO称为普通IO, ...
感谢版主,选择了第二种,比较方便 T1 设置低电平时间 T2设置高电平时间 是在整个pwm周期之内来调整吗?多路输出的话,这样可以错开相位是吗? dtdzlujian 发表于 2021-11-22 07:22
T1 设置低电平时间 T2设置高电平时间 是在整个pwm周期之内来调整吗?多路输出的话,这样可以错开相位是吗? ...
是的,相位随意设置。
页:
[1]