找回密码
 立即注册
楼主: xxkj***

STC8H1K17T-TSSOP20系列实验之五----简易频率计

[复制链接]
  • TA的每日心情
    开心
    昨天 07:54
  • 签到天数: 157 天

    [LV.7]常住居民III

    67

    主题

    836

    回帖

    2776

    积分

    金牌会员

    积分
    2776
     楼主| 发表于 2024-1-19 09:09:33 | 显示全部楼层
    本帖最后由 xxkj2010 于 2024-1-19 09:10 编辑
    梁工 发表于 2024-1-18 22:03
    脉冲较慢的信号(10KHz以下,特别是100Hz以下)可以采用等精度测量频率方法,在一定时间内测量脉冲个数以 ...

    测32KHz脉冲用等精度测量法,可以吧?测周期的话无法把PWM的分辨率提高到很高

    点评

    测32KHz可以先分频到1秒,测周期,可以精确到0.1us(取决于你的时钟精度)。  详情 回复 发表于 2024-1-19 11:18
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2932

    回帖

    6609

    积分

    超级版主

    积分
    6609
    发表于 2024-1-19 11:18:54 | 显示全部楼层
    xxkj2010 发表于 2024-1-19 09:09
    测32KHz脉冲用等精度测量法,可以吧?测周期的话无法把PWM的分辨率提高到很高 ...

    测32KHz可以先分频到1秒,测周期,可以精确到0.1us(取决于你的时钟精度)。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:54
  • 签到天数: 157 天

    [LV.7]常住居民III

    67

    主题

    836

    回帖

    2776

    积分

    金牌会员

    积分
    2776
     楼主| 发表于 2024-1-19 14:26:01 | 显示全部楼层
    本帖最后由 xxkj2010 于 2024-1-19 14:28 编辑
    梁工 发表于 2024-1-19 11:18
    测32KHz可以先分频到1秒,测周期,可以精确到0.1us(取决于你的时钟精度)。 ...

    不太懂意思。
    用例程   STC8H系列-高级PWM相关程序-20240103\高级PWM相关程序\03-PWMA-4个捕获通道   去测32.768KHz脉冲的周期的话,返回的数据是30或31,可以根据周期求频率,但感觉误差太多。所以想用闸门方法测脉冲个数,可是PWM的寄存器太复杂,芯片手册中对寄存器的叙述又把输入模式和输出模式的混在一起,很难看懂,所以暂时不会配置。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:54
  • 签到天数: 157 天

    [LV.7]常住居民III

    67

    主题

    836

    回帖

    2776

    积分

    金牌会员

    积分
    2776
     楼主| 发表于 2024-1-23 09:00:39 | 显示全部楼层
    梁工 发表于 2024-1-19 11:18
    测32KHz可以先分频到1秒,测周期,可以精确到0.1us(取决于你的时钟精度)。 ...

    我参考 STC8H系列-高级PWM相关程序-20240103\高级PWM相关程序\03-PWMA-4个捕获通道对32K信号进行周期测量,测量条件是使用外部晶振24MHz,不分频率,测量结果是733或732,
    001.jpg

    换算成频率大约是30.541KHz。而使用计数器进行等精度频率测量,测得的结果是32.8KHz
    002.jpg

    测量的条件都是用24MHz晶振的,为什么会造成这么大的差别呢?

    点评

    你32K信号怎么来的?如果直接测量32768的振荡输出端,则因为电容的影响,导致频率偏小。 捕捉的话,也按等精度测量的方法,捕捉32768个脉冲的时间(或捕获大约1秒再根据捕捉到的脉冲数和时间)再计算,精度取决于你  详情 回复 发表于 2024-1-23 10:00
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 10:11
  • 签到天数: 149 天

    [LV.7]常住居民III

    2

    主题

    88

    回帖

    244

    积分

    中级会员

    积分
    244
    发表于 2024-1-23 09:08:11 | 显示全部楼层
    神农鼎 发表于 2024-1-12 15:47
    STC8H1K08T, STC8H2K08U 系列的 PWM
    ===可以用 PLL-144MHz的时钟【64MHz ~ 192MHz】
    ===测量 占空比 50%  ...

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2932

    回帖

    6609

    积分

    超级版主

    积分
    6609
    发表于 2024-1-23 10:00:51 | 显示全部楼层
    xxkj2010 发表于 2024-1-23 09:00
    我参考 STC8H系列-高级PWM相关程序-20240103\高级PWM相关程序\03-PWMA-4个捕获通道对32K信号进行周期测量 ...

    你32K信号怎么来的?如果直接测量32768的振荡输出端,则因为电容的影响,导致频率偏小。
    捕捉的话,也按等精度测量的方法,捕捉32768个脉冲的时间(或捕获大约1秒再根据捕捉到的脉冲数和时间)再计算,精度取决于你的24MHz晶振的精度。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:54
  • 签到天数: 157 天

    [LV.7]常住居民III

    67

    主题

    836

    回帖

    2776

    积分

    金牌会员

    积分
    2776
     楼主| 发表于 2024-1-23 13:10:00 | 显示全部楼层
    梁工 发表于 2024-1-23 10:00
    你32K信号怎么来的?如果直接测量32768的振荡输出端,则因为电容的影响,导致频率偏小。
    捕捉的话,也按 ...

    RX8025的FOUT引脚
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:54
  • 签到天数: 157 天

    [LV.7]常住居民III

    67

    主题

    836

    回帖

    2776

    积分

    金牌会员

    积分
    2776
     楼主| 发表于 2024-2-5 09:07:27 | 显示全部楼层
    梁工 发表于 2024-1-19 11:18
    测32KHz可以先分频到1秒,测周期,可以精确到0.1us(取决于你的时钟精度)。 ...

    梁工,请教一下,我看 你的《STC32G12K128-DSO-USB-CDC-PC-480x320-V2-opencode-20220819》,你的频率计是用PWMB作1秒闸门信号去控制p33,促使INT0中断的,那为什么不直接让PWMB中断,然后在PWMB中断程序中去计算接收到的脉冲个数而得到频率?

    点评

    因为中断响应需要时间,会导致有误差。用INT0是硬件控制计数的,不会导致误差。  详情 回复 发表于 2024-2-5 16:20
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2932

    回帖

    6609

    积分

    超级版主

    积分
    6609
    发表于 2024-2-5 16:20:05 | 显示全部楼层
    xxkj2010 发表于 2024-2-5 09:07
    梁工,请教一下,我看 你的《STC32G12K128-DSO-USB-CDC-PC-480x320-V2-opencode-20220819》,你的频率计 ...

    因为中断响应需要时间,会导致有误差。用INT0是硬件控制计数的,不会导致误差。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:54
  • 签到天数: 157 天

    [LV.7]常住居民III

    67

    主题

    836

    回帖

    2776

    积分

    金牌会员

    积分
    2776
     楼主| 发表于 2024-2-5 16:39:50 | 显示全部楼层
    梁工 发表于 2024-2-5 16:20
    因为中断响应需要时间,会导致有误差。用INT0是硬件控制计数的,不会导致误差。 ...

    计数也是在INT0中断的时候计数的,这个也需要时间吧。主要区别在于INT0优先最高,而PWM中断没有设置为最高而已。

    点评

    你可能没看懂原理,我用的是INT0控制Timer0对外计数,INT0高电平计数,低电平不计数,纯硬件操作,并且INT0下降沿中断读数,此时计数已停止。INT0高电平为1秒,计数值即为频率。  详情 回复 发表于 2024-2-5 17:18
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-3 06:41 , Processed in 0.095052 second(s), 73 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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