找回密码
 立即注册
查看: 235|回复: 5

32G12K128,技术问题 PWM端口配置,计数器异常,求大佬|已解决

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-04-30 10:18:44

17

主题

37

回帖

187

积分

注册会员

积分
187
发表于 2025-1-20 10:28:56 | 显示全部楼层 |阅读模式
芯片:32G12K128
系统频率:33.1776Mhz
环境:KEIL 251
PWM端口配置为脉冲捕获,当配置CCn捕获上升沿,并连接到一固定脉冲,计数器读出来的值异常。
截图202501201026321033.jpg
当修改CC1捕获下降沿,此时计数器好像就正常了。
截图202501201026482962.jpg
其他尝试:
换成CC4端口捕获固定脉冲的上升沿,计数器的值依旧异常。
但当脉冲有变化的话时候,例如人为得将捕获端口接到高电平,计数器的值看起来也正常,是数值比较大的数;
把捕获端口设置为高阻输入,测量固定脉冲时计数器值仍然异常。
截图202501201026595683.jpg
除变量名称等,以上代码和STC32手册的测量脉冲周期示例代码基本一致
截图202501201026321950.jpg
截图202501201026324453.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-1-20 11:00:06 | 显示全部楼层
同一组PWM定时器既捕获又输出的情况下容易出现错乱。
建议使用延时产生脉冲的情况下再试试
回复 支持 反对

使用道具 举报 送花

已绑定手机

0

主题

3

回帖

20

积分

新手上路

积分
20
发表于 2025-1-20 15:07:38 | 显示全部楼层
王*** 发表于 2025-1-20 11:00
同一组PWM定时器既捕获又输出的情况下容易出现错乱。
建议使用延时产生脉冲的情况下再试试 ...

谢谢解答,测量外部脉冲就没问题了。不是同一组PWM也会有问题。

点评

测量时,PWM并不知道你的脉冲是外部还是内部产生的,所以不应该有区别,再仔细检查下。  详情 回复 发表于 2025-1-20 15:15
回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-1-20 15:15:36 | 显示全部楼层
ti*** 发表于 2025-1-20 15:07
谢谢解答,测量外部脉冲就没问题了。不是同一组PWM也会有问题。

测量时,PWM并不知道你的脉冲是外部还是内部产生的,所以不应该有区别,再仔细检查下。
回复 支持 反对

使用道具 举报 送花

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

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2025-1-20 17:34:39 | 显示全部楼层
因为同组PWM捕获测量的周期值与PWM输出的周期相同,都是ARRH,ARRL。
由于同一组的PWM输出和捕获同步,如果直接反馈接入,则每次捕获都刚好PWM溢出,所以计算出的周期值始终是0。
解决方法:
1. 同一组PWM里面如果要输出和捕获同时进行,需要将ARR设置为FFFF。
2. 修改捕获计数方法:cnt = ((cnt1 - cnt2) % (PWMA_ARR + 1));
3. 捕获/输出分开两组PWM,例如:PWMA捕获,PWMB输出。
回复 支持 1 反对 0

使用道具 举报 送花

已绑定手机

0

主题

3

回帖

20

积分

新手上路

积分
20
发表于 2025-1-21 15:07:28 | 显示全部楼层
使用王工建议的用延迟产生脉冲这个方法,确实计数就正常了。
我以为同组PWM的意思是PWM1下不同的引脚,原来是PWMA...误会了。
现在明白多了,谢谢各位大佬,受益匪浅。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:14 , Processed in 0.153475 second(s), 88 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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