找回密码
 立即注册
查看: 1367|回复: 11

奇了怪了,STC8H4K无论怎么设置PWM频率,它一直都是37.4KHz(已解决!)

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-23 16:05:29

13

主题

40

回帖

295

积分

中级会员

积分
295
发表于 2023-5-7 22:44:34 | 显示全部楼层 |阅读模式
本帖最后由 zcllom 于 2023-5-8 02:16 编辑

void Adjust_Pump_PWM_Init(void)    //主频率  22.1184MHz
{
    PWMA_ENO = 0x00;
    PWMA_ENO |= ENO2P;                          //使能输出PWM2P
    PWMA_PS = 0x00;                             //高级 PWM 通道输出脚选择位
   PWMA_PS |= PWM2_1;                          //选择 PWM2_1 通道

    PWMA_BKR = 0x80;                            //使能主输出
    PWMA_CR1 |= 0x01;                           //开始计时

        PWMA_PSCR = 0x0007;

        PWMA_ARR = 0x0100;

        PWMA_CCR2 = 0x0000;

}


回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-5-7 22:57:03 | 显示全部楼层
1.png

2.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-23 16:05:29

13

主题

40

回帖

295

积分

中级会员

积分
295
发表于 2023-5-7 23:18:54 | 显示全部楼层

你这个例子里根本就没有分频率设置,没多少借鉴价值
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-23 16:05:29

13

主题

40

回帖

295

积分

中级会员

积分
295
发表于 2023-5-8 00:07:09 | 显示全部楼层
我用的是P5.4引脚,是不是针对它还要做什么特别的设置?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-23 16:05:29

13

主题

40

回帖

295

积分

中级会员

积分
295
发表于 2023-5-8 02:15:39 | 显示全部楼层
自己找到问题了,因为我在循环中不断地刷新PWMA_CCR2的值,然后清标志位PWMA_SR1=0,清计数器PWMA_CNTR=0,造成频率错乱!!
现在改成判断是否有新的占空比产生,有就给PWMA_CCR2赋值,没有就保持不变,然后就好了。
另外我想了解一下:重新给PWMA_CCR2赋值后,是否需要把:标志位PWMA_SR1清零?把计数器PWMA_CNTR清零?

点评

占空比需要改变时,给PWMA_CCR2赋值即可,不需要整其他的。  详情 回复 发表于 2023-5-8 14:15
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2023-5-8 09:14:42 | 显示全部楼层
zcl*** 发表于 2023-5-8 02:15
自己找到问题了,因为我在循环中不断地刷新PWMA_CCR2的值,然后清标志位PWMA_SR1=0,清计数器PWMA_CNTR=0, ...

不需要,如果想动态更新占空比的话建议开启对应的预装载功能:

1.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-5-8 14:15:38 | 显示全部楼层
zcl*** 发表于 2023-5-8 02:15
自己找到问题了,因为我在循环中不断地刷新PWMA_CCR2的值,然后清标志位PWMA_SR1=0,清计数器PWMA_CNTR=0, ...

占空比需要改变时,给PWMA_CCR2赋值即可,不需要整其他的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-23 16:05:29

13

主题

40

回帖

295

积分

中级会员

积分
295
发表于 2023-5-8 23:16:13 | 显示全部楼层
梁*** 发表于 2023-5-8 14:15
占空比需要改变时,给PWMA_CCR2赋值即可,不需要整其他的。

那让PWM暂时停下来,需要关闭它的相关寄存器设置吗?

点评

STC8H系列的高级PWM,连续输出0或1有2种方法(以PWM1P为例): 1、使用PWMx_ENO禁止输出PWM,对应IO成为普通IO,禁止PWM输出后,由这个IO直接输出高或低电平。 PWMA_ENO |= 0x01; // 允许PWM1P输出 delay_ms(  详情 回复 发表于 2023-5-8 23:18
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-5-8 23:18:04 | 显示全部楼层
zcl*** 发表于 2023-5-8 23:16
那让PWM暂时停下来,需要关闭它的相关寄存器设置吗?

STC8H系列的高级PWM,连续输出0或1有2种方法(以PWM1P为例):

1、使用PWMx_ENO禁止输出PWM,对应IO成为普通IO,禁止PWM输出后,由这个IO直接输出高或低电平。
  PWMA_ENO |= 0x01;   // 允许PWM1P输出
  delay_ms(5);        // P1.0输出PWM 5ms
  P10 = 1;            // P1.0输出高电平
  PWMA_ENO &= ~0x01;  // 关闭PWM输出
  delay_ms(5);        // 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

2、设置PWMx_CCMRn,强制PWM输出有效(高)电平/无效(低)电平。
  PWMA_CCMR1 = (PWMA_CCMR1 & ~0x70) | 0x60;  // PWM正常输出
  delay_ms(5);                               // PWM输出5ms
  PWMA_CCMR1 = (PWMA_CCMR1 & ~0x70) | 0x40;  // 强制PWM输出无效(低)电平
  delay_ms(5);                               // PWM输出低电平5ms
  PWMA_CCMR1 = (PWMA_CCMR1 & ~0x70) | 0x60;  // PWM正常输出
  delay_ms(5);                               // PWM输出5ms
  PWMA_CCMR1 = (PWMA_CCMR1 & ~0x70) | 0x50;  //强制PWM输出有效(高)电平
  delay_ms(5);                               // PWM输出高电平5ms

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-23 16:05:29

13

主题

40

回帖

295

积分

中级会员

积分
295
发表于 2023-5-9 00:03:39 | 显示全部楼层
梁*** 发表于 2023-5-8 23:18
STC8H系列的高级PWM,连续输出0或1有2种方法(以PWM1P为例):

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

第二个方法,设置PWMX_CCMRn,改写PWMX_CCMRn这个寄存器时,是否需要先设置PWMX_CCER1 = 0   把通道关闭一下?

点评

不需要。  详情 回复 发表于 2023-5-9 09:51
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:32 , Processed in 0.155341 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表