找回密码
 立即注册
查看: 1436|回复: 8

STC32G预分频问题

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:322
  • 最近打卡:2025-05-02 10:02:36
已绑定手机

21

主题

487

回帖

1041

积分

金牌会员

积分
1041
发表于 2023-5-11 16:04:02 | 显示全部楼层 |阅读模式
版主你好,我使用手册练习时,PWMA_PSCRH和PWMA_PSCRL可以单独进行设置,但是从官网下载的例程却不知该怎么设置了?请帮忙指点,比如我需要设置频率50Hz,应该怎么操作?
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:81
  • 最近打卡:2024-10-17 09:35:06

9

主题

180

回帖

1778

积分

版主

积分
1778
发表于 2023-5-11 17:13:10 | 显示全部楼层
您好,可以参考下我们STC32G数据手册,预分频器章节
STC32G预分频器.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-5-11 17:13:33 | 显示全部楼层
你要50Hz,设置不了那么低的,PWM时钟 = fosc/PSCR.
假设主频6MHz,则最低频率=6000000/65536=91.5Hz。

PWMA_PSCRH = 0xff;                // 预分频寄存器, 分频 Fck_cnt = Fck_psc/(PSCR[15:0}+1), 边沿对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)), 中央对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)*2).
PWMA_PSCRL = 0xff;


请下载例子:

STC32G-高级PWM范例程序下载
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1778
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2023-5-11 18:01:06 | 显示全部楼层
驱动舵机, STC8H8K64U高级PWM, STC驱动教程系列
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=885
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)

8h和32g类似的,你看下这个帖子就好了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:322
  • 最近打卡:2025-05-02 10:02:36
已绑定手机

21

主题

487

回帖

1041

积分

金牌会员

积分
1041
发表于 2023-5-11 18:34:21 | 显示全部楼层
版主你好,我说的50Hz是PWM输出的频率,预分频我想设置成240分频,这种模块化的程序我没找到设置点?这种格式的我应该改哪里? 1.png 2.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:322
  • 最近打卡:2025-05-02 10:02:36
已绑定手机

21

主题

487

回帖

1041

积分

金牌会员

积分
1041
发表于 2023-5-11 21:33:48 | 显示全部楼层
梁*** 发表于 2023-5-11 17:13
你要50Hz,设置不了那么低的,PWM时钟 = fosc/PSCR.
假设主频6MHz,则最低频率=6000000/65536=91.5Hz。

PWM频率由SYSclk/((PSCR+1)*(AAR+1))组成,我其实想问的是官方库函数里PWMA_PSCRH 在哪里修改或设定值?我没搞明白宏定义里#define PWMA_Prescaler(n)  PWMA_PSCR = n  怎么设定值?

点评

PWM频率由SYSclk/((PSCR+1)*(AAR+1))组成,我其实想问的是官方库函数里PWMA_PSCRH 在哪里修改或设定值?我没搞明白宏定义里#define PWMA_Prescaler(n) PWMA_PSCR = n 怎么设定值? ----------SYSclk/((PSCR+1)*(A  详情 回复 发表于 2023-5-15 11:24
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:322
  • 最近打卡:2025-05-02 10:02:36
已绑定手机

21

主题

487

回帖

1041

积分

金牌会员

积分
1041
发表于 2023-5-14 19:15:30 | 显示全部楼层
版主你好,我想请问如果我使用官方的例程如何修改预分频?我使用手册和“驱动舵机, STC8H8K64U高级PWM, STC驱动教程系列”方法已经可以正常驱动舵机,但是我想搞清楚官方的例程是怎么修改预分频的?使用官方的例程很方便,使用哪个功能简单设置一下就可以了,但是PWM的例程,预分频的设置我找到的相关的就这个#define PWMA_Prescaler(n)  PWMA_PSCR = n  我没搞懂,能否给讲讲?比如“18-高级PWM5-PWM6-PWM7-PWM8输出测试程序”这个例程,我怎么改预分频?我这业余水平,问题可能有点低级,还请耐心指导哦,谢了!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2023-5-15 11:24:26 | 显示全部楼层
lly*** 发表于 2023-5-11 21:33
PWM频率由SYSclk/((PSCR+1)*(AAR+1))组成,我其实想问的是官方库函数里PWMA_PSCRH 在哪里修改或设定值? ...

PWM频率由SYSclk/((PSCR+1)*(AAR+1))组成,我其实想问的是官方库函数里PWMA_PSCRH 在哪里修改或设定值?我没搞明白宏定义里#define PWMA_Prescaler(n)  PWMA_PSCR = n  怎么设定值?

----------SYSclk/((PSCR+1)*(AAR+1))公式里PSCR就是你需要的分频系数。在使能PWM开启之前,调用PWMA_Prescaler(分频系数);就可以了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:322
  • 最近打卡:2025-05-02 10:02:36
已绑定手机

21

主题

487

回帖

1041

积分

金牌会员

积分
1041
发表于 2023-5-16 19:34:57 | 显示全部楼层
收到,感谢指导,但是好像设置不了太低的频率?我再试试吧
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 14:43 , Processed in 0.234768 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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