STC32G预分频问题
版主你好,我使用手册练习时,PWMA_PSCRH和PWMA_PSCRL可以单独进行设置,但是从官网下载的例程却不知该怎么设置了?请帮忙指点,比如我需要设置频率50Hz,应该怎么操作? 您好,可以参考下我们STC32G数据手册,预分频器章节你要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爱好者互助交流社区)
驱动舵机, STC8H8K64U高级PWM, STC驱动教程系列
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=885
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)
8h和32g类似的,你看下这个帖子就好了 版主你好,我说的50Hz是PWM输出的频率,预分频我想设置成240分频,这种模块化的程序我没找到设置点?这种格式的我应该改哪里? 梁工 发表于 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怎么设定值? 版主你好,我想请问如果我使用官方的例程如何修改预分频?我使用手册和“驱动舵机, STC8H8K64U高级PWM, STC驱动教程系列”方法已经可以正常驱动舵机,但是我想搞清楚官方的例程是怎么修改预分频的?使用官方的例程很方便,使用哪个功能简单设置一下就可以了,但是PWM的例程,预分频的设置我找到的相关的就这个#define PWMA_Prescaler(n)PWMA_PSCR = n我没搞懂,能否给讲讲?比如“18-高级PWM5-PWM6-PWM7-PWM8输出测试程序”这个例程,我怎么改预分频?我这业余水平,问题可能有点低级,还请耐心指导哦,谢了! llyymm 发表于 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(分频系数);就可以了
收到,感谢指导,但是好像设置不了太低的频率?我再试试吧
页:
[1]