haishi28 发表于 2025-8-29 15:14:19

梁工 发表于 2024-10-22 12:34
STC8H系列的高级PWM,连续输出0或1有2种方法(以PWM1P为例):

1、使用PWMx_ENO禁止输出PWM,对应IO成为 ...

你好,梁工。
第一个方式,里面第二段,P10 = 0; 之后关闭PWM,P1.0为什么会输出5ms的高电平呢?能不能解释一下?

梁工 发表于 2025-8-29 15:18:47

haishi28 发表于 2025-8-29 15:14
你好,梁工。
第一个方式,里面第二段,P10 = 0; 之后关闭PWM,P1.0为什么会输出5ms的高电平呢?能不能解 ...

PWMA_ENO |= 0x01;   // 允许PWM1P输出
delay_ms(5);      // P1.0输出PWM 5ms
P10 = 0;            // P1.0输出低电平
PWMA_ENO &= ~0x01;// 关闭PWM输出
delay_ms(5);      // P1.0输出低电平5ms

haishi28 发表于 2025-8-29 15:32:42

梁工 发表于 2025-8-29 15:18
PWMA_ENO |= 0x01;   // 允许PWM1P输出
delay_ms(5);      // P1.0输出PWM 5ms
P10 = 0;             ...

谢谢梁工。我还想确认一下,是不是就一直低电平输出了?直到新的语句控制该管脚。
另外,是不是推挽输出和准双向两种配置都可以?除了高阻输入不行,其他三种IO配置,有什么区别?哪种最推荐呢?

梁工 发表于 2025-8-29 23:51:25

haishi28 发表于 2025-8-29 15:32
谢谢梁工。我还想确认一下,是不是就一直低电平输出了?直到新的语句控制该管脚。
另外,是不是推挽输出 ...

1、会一直低电平输出,直到你改变它。
2、PWM我都建议设置为推挽输出,除非有特殊用途,并且有些型号是启动PWM后会固定推挽输出,IO设置无效。

haishi28 发表于 2025-9-4 11:27:02

梁工 发表于 2025-8-29 23:51
1、会一直低电平输出,直到你改变它。
2、PWM我都建议设置为推挽输出,除非有特殊用途,并且有些型号是启 ...

谢谢梁工。

还有两个问题:
一个是,在系统时钟固定的情况下,我想改变PWM的频率,就是通过修改预分频器、自动重装载寄存器,这两个寄存器就可以了吧? 比较寄存器是用来跟自动重装载寄存器配合改变占空比的,我的理解对吗?
另外一个是,PWM相关的寄存器的复位值,8H的手册里,我没有找到,请您帮忙看一下。

梁工 发表于 2025-9-4 14:11:00

haishi28 发表于 2025-9-4 11:27
谢谢梁工。

还有两个问题:


1、理解正确。
2、寄存器上电复位后通常是0。我推荐用到的寄存器都自己初始化一遍。
页: 1 [2]
查看完整版本: 关闭PWM输出后,电压不会立刻下降的问题。