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

8H的高级pwm周期怎么设置3ms以上

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-06 15:03:04
已绑定手机

2

主题

4

回帖

18

积分

新手上路

积分
18
发表于 6 天前 | 显示全部楼层 |阅读模式
大家好,8H的高级pwm周期怎么设置9ms,  设置PWMA_ARR = 323999; 结果出错,只有一点多ms。是需要设置什么吗,请教下大家,网上搜索说要设置分频,具体是怎么操作,可用代码指点下
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-06 15:03:04
已绑定手机

2

主题

4

回帖

18

积分

新手上路

积分
18
发表于 6 天前 | 显示全部楼层
是想设置13.5ms的周期,9ms正半周,设置PWMA_ARR = 323999;结果正半周只有一点多ms,大家指点下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:65
  • 最近打卡:2025-05-12 07:51:58

719

主题

1万

回帖

1万

积分

管理员

积分
15689
发表于 6 天前 | 显示全部楼层
截图202505061531205258.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-06 15:03:04
已绑定手机

2

主题

4

回帖

18

积分

新手上路

积分
18
发表于 6 天前 | 显示全部楼层
管理员你好,根据你提供的思路,测试下,还是不行,不知哪里有问题
下面是程序,13.5ms的周期


0.01.jpg



实际的波形图周期是2.57,跟我之前的一样,还是错误,请问要怎么设置才行
0.02.png


点评

下载时设置主频12Mhz 使用以下参数: PWMA_PSCRH = 0x00; PWMA_PSCRL = 0x02; PWMA_ARRH = 0xd2; PWMA_ARRL = 0xf0; PWMA_CCR1H = 0x8c; PWMA_CCR1L = 0xa0; 即可实现13.5ms的周期,9ms的高电平  详情 回复 发表于 5 天前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:434
  • 最近打卡:2025-05-12 09:01:08
已绑定手机

77

主题

4896

回帖

8556

积分

超级版主

DebugLab

积分
8556
发表于 6 天前 | 显示全部楼层

ARR是16bit XSFR
unsigned int最大值65535
323999超出范围

可以使用HSCLKDIV、HSPWMDIV分频


截图202505062252454846.jpg

截图202505062253295838.jpg

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-05-12 07:36:42
已绑定手机
已实名认证

110

主题

2247

回帖

5560

积分

版主

积分
5560
发表于 5 天前 | 显示全部楼层
haly*** 发表于 2025-5-6 16:46
管理员你好,根据你提供的思路,测试下,还是不行,不知哪里有问题
下面是程序,13.5ms的周期

下载时设置主频12Mhz
使用以下参数:
        PWMA_PSCRH = 0x00;
        PWMA_PSCRL = 0x02;
        PWMA_ARRH = 0xd2;
        PWMA_ARRL = 0xf0;
        PWMA_CCR1H = 0x8c;
        PWMA_CCR1L = 0xa0;
即可实现13.5ms的周期,9ms的高电平
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:61
  • 最近打卡:2025-05-12 09:50:54

73

主题

5916

回帖

1万

积分

超级版主

积分
12195
发表于 5 天前 | 显示全部楼层
在你另外一贴已经说得很清楚,PWMA_ARR是16位寄存器,不能写入超过65535的数值,这是编程人员要知道的最基础的知识。超过65535的值将被截断,剩下2字节,这就是你遇到问题的根本原因。
PWMA_ARR是一个16位的寄存器,最大值为65535!
需要更低的PWM频率,更长的PWM周期,请用PWM时钟预分频寄存器PWMA_PSCR先分频,
你没说主频多少,假设FOSC=36MHz,估计你可能需要较长周期,可以使用PWM时钟为1MHz。
PWMA_PSCR = 36-1;   // 36分频得到1MHz PWM时钟
PWMA_ARR   = 9000-1;  // 周期为9000us,即9ms。可以设置 1~65535,对应周期2~65536us

点评

厉害 思路清晰 回答很好  发表于 5 天前
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-12 14:04 , Processed in 0.141201 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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