找回密码
 立即注册
查看: 711|回复: 6

STC8G CCP捕捉的一点疑问 | 已解决

[复制链接]

6

主题

18

回帖

178

积分

注册会员

积分
178
发表于 2024-5-20 15:53:16 | 显示全部楼层 |阅读模式
截图202405201544171065.jpg

程序基本上是参考例程。我用的是系统时钟24M测试,,频率高检测没问题  150K也可以检测到,但是频率低,就检测不到了  360Hz以下,检测不了

cnt 应该是在一个周期内,计数器的溢出次数 。。。例程是没有对cnt进行过任何清0操作,,那这个不就是会cnt越来越大吗。。当然可能程序的意图是,就让他自己慢慢变大。反正前后二次相减,是可以抵消的,是吧。。相对时间差



/////////////////////////////////////
发现问题了,没开溢出中断,唉
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6094

回帖

1万

积分

超级版主

积分
12735
发表于 2024-5-20 17:31:39 | 显示全部楼层
使用1us做PWM时钟,则可以捕捉1~65535us的时间。
如果使用溢出中断来扩展计数,则要处理好临界问题,就是刚好捕捉后,进去读取数据时出现溢出。
回复 支持 反对

使用道具 举报 送花

6

主题

18

回帖

178

积分

注册会员

积分
178
发表于 2024-5-22 09:33:54 | 显示全部楼层
梁*** 发表于 2024-5-20 17:31
使用1us做PWM时钟,则可以捕捉1~65535us的时间。
如果使用溢出中断来扩展计数,则要处理好临界问题,就是刚 ...

如果我用STC8H,PWM捕获,我要测量最小的频率5HZ,,
PWM好像没有溢出中断,怎么做溢出中断,还是只能控制在65536以内,降低PWM主频。

点评

最小5Hz,就是最大200ms,可以使用4~10us的周期做PWM时钟,对应最大捕获时间262ms~655ms。加上溢出中断就要考虑临界情况(捕获后马上发生溢出),处理好也是可以的,但麻烦。捕获分辨率16位,对于大部分的应用都够了  详情 回复 发表于 2024-5-22 10:51
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6094

回帖

1万

积分

超级版主

积分
12735
发表于 2024-5-22 10:51:51 | 显示全部楼层
zu*** 发表于 2024-5-22 09:33
如果我用STC8H,PWM捕获,我要测量最小的频率5HZ,,
PWM好像没有溢出中断,怎么做溢出中断,还是只能控 ...

最小5Hz,就是最大200ms,可以使用4~10us的周期做PWM时钟,对应最大捕获时间262ms~655ms。加上溢出中断就要考虑临界情况(捕获后马上发生溢出),处理好也是可以的,但麻烦。捕获分辨率16位,对于大部分的应用都够了,设置合适的PWM时钟即可。
回复 支持 反对

使用道具 举报 送花

6

主题

18

回帖

178

积分

注册会员

积分
178
发表于 2024-5-22 14:17:44 | 显示全部楼层
梁*** 发表于 2024-5-22 10:51
最小5Hz,就是最大200ms,可以使用4~10us的周期做PWM时钟,对应最大捕获时间262ms~655ms。加上溢出中断就 ...

恩,所以,还是要和我上面说的,控制PWM的时钟,控制在65535以内。。我试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-05-19 16:34:01

5

主题

21

回帖

115

积分

注册会员

积分
115
发表于 2024-7-27 10:24:19 | 显示全部楼层
即便控制在65536之内,如果计数器不清零,终究还是有溢出的现象啊。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:463
  • 最近打卡:2025-06-17 17:53:48

33

主题

2448

回帖

5174

积分

论坛元老

积分
5174
发表于 2024-7-27 10:29:03 | 显示全部楼层
qqz*** 发表于 2024-7-27 10:24
即便控制在65536之内,如果计数器不清零,终究还是有溢出的现象啊。

这个就看你怎么用了,,可以选择捕获到信号的边沿之后,让计数器重新计数然后到下一个边沿,,这段时间在这个65535之内就OK  就能计算出来这两个边沿之间的时间。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-18 00:17 , Processed in 0.153279 second(s), 92 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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