找回密码
 立即注册
楼主: etec

使用32G12K128芯片INT0中断测量脉冲宽度问题

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

74

主题

6094

回帖

1万

积分

超级版主

积分
12735
发表于 2024-5-2 16:56:03 | 显示全部楼层
本帖最后由 梁工 于 2024-5-2 18:20 编辑
et*** 发表于 2024-5-2 16:14
您好,梁工,按照您的建议,我再INT0中断中,读取T3定时器值前,先停止T3计数,读取完后,再启动那个T3定 ...

我没有用过STM8S105,不知道其读取定时器16位值的机理,有的MCU读取时,是会瞬间读取16位或锁存16位的值,所以不会存在问题。
但是51的架构,每次读只能读取一个字节,如果不停止计数器,不管先读TH3还是先读TL3,均有可能在读取一个字节后,刚好出现进位,再读取另一字节,组合成16位就出错了,具体例子:
比如当先计数值为0x03ff,先读取高字节0x03,刚读完,计时器+1,变成了0x0400,然后读取低字节得到0x00,则本次读取数值为0x0300,少了255。
比如当先计数值为0x03ff,先读取低字节0xff,刚读完,计时器+1,变成了0x0400,然后读取高字节得到0x04,则本次读取数值为0x04ff,多了256。
避免方法是:
1、读之前关闭定时器。读取完成再开启定时器。
2、先读高字节,再读低字节,再比较一下刚才读的高字节与当前的高字节是否相等,不相等意味着出现进位,则高字节=1或重读高字节即可。

STC的PWM用于捕捉模式则不会有上述问题,下降沿出现时,瞬间锁存16位计数值,过一会去读取都没有问题,并且误差不超过1个时钟。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-27 11:35:30

13

主题

23

回帖

148

积分

注册会员

积分
148
发表于 2024-5-2 17:36:40 | 显示全部楼层
梁*** 发表于 2024-5-2 16:56
我没有用过STM8S105,捕捉掉其读取定时器16位值的机理,有的MCU读取时,是会瞬间读取16位或锁存16位的值 ...

好的,梁工,我理解了,非常感谢!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-27 11:35:30

13

主题

23

回帖

148

积分

注册会员

积分
148
发表于 2024-8-8 15:58:16 | 显示全部楼层
梁*** 发表于 2024-5-1 21:53
使用INT0下降沿中断+定时器配合测量周期没有任何问题,因为要进入中断读取定时器需要点时间,可能会造成一 ...

您好,梁工,有个问题想请教一下,
    我使用32G12K128芯片做了一款调速电机的控制器带485接口,项目已经使用了100台,使用基本正常,但近期在一个新的项目现场使用中发现一个问题,现场有一台11KW的三相异步电机,当这个异步电机启动瞬间,我的单片机发生自动复位,并且485口上开始主动输出FF FF,但单片机程序此时并没有控制485输出。

       之前用ST意法半导体8位单片机,也碰到过类似情况,处理办法是把单片机外部晶振改成了内部晶振,想问下,用32G12K128这款芯片,是不是用外部晶振也会受到到干扰重启(目前是使用的24M外部无源晶振),还是有其他原因会导致重启,梁工,麻烦您看下,谢谢

点评

晶振是一个Q值很大的选频器件,一般不会受干扰,即使干扰到,要么停止震荡(我没遇到过),要么干扰不了。 当出现你说的问题时,要现场测试下单片机的电源是否受影响了,一般做好电源就可以了,485也要有常规的抗干  详情 回复 发表于 2024-8-8 16:27
回复 支持 反对

使用道具 举报 送花

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

74

主题

6094

回帖

1万

积分

超级版主

积分
12735
发表于 2024-8-8 16:27:15 | 显示全部楼层
et*** 发表于 2024-8-8 15:58
您好,梁工,有个问题想请教一下,
    我使用STC32G12K128芯片做了一款调速电机的控制器带485接口,项目 ...

晶振是一个Q值很大的选频器件,一般不会受干扰,即使干扰到,要么停止震荡(我没遇到过),要么干扰不了。
当出现你说的问题时,要现场测试下单片机的电源是否受影响了,一般做好电源就可以了,485也要有常规的抗干扰措施。
如果直接测试单片机的穿偶没有信号输出,则485不应该有信号输出,查一下是否电路不稳定导致。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-27 11:35:30

13

主题

23

回帖

148

积分

注册会员

积分
148
发表于 2024-8-10 11:20:12 | 显示全部楼层
梁*** 发表于 2024-8-8 16:27
晶振是一个Q值很大的选频器件,一般不会受干扰,即使干扰到,要么停止震荡(我没遇到过),要么干扰不了 ...

梁工,您好,我的设备是32G12K128芯片做的,带一个485接口,现场情况大概是这样的,现场有台异步电机,在异步电机启动之前,我的设备包括485通信都是正常的,发现问题是在异步电机启动时,交流接触器吸合瞬间,单片机发生了复位,现在的问题是单片机复位后,我设备485口上不停的主动发送FF FF,导致和现场的PLC发生通信中断,重启设备也不行,但只要电机停止工作,我设备的485又正常了,您看下,这大概是什么问题会导致这种现象啊

点评

请参考我上一贴说的。 在现场用示波器看一下你的电源。 合格的电源不会受到220V/380V的干扰影响,明显你的电源无法滤除FFT(快速脉冲群和浪涌)干扰。  详情 回复 发表于 2024-8-10 13:00
回复 支持 反对

使用道具 举报 送花

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

74

主题

6094

回帖

1万

积分

超级版主

积分
12735
发表于 2024-8-10 13:00:43 | 显示全部楼层
et*** 发表于 2024-8-10 11:20
梁工,您好,我的设备是STC32G12K128芯片做的,带一个485接口,现场情况大概是这样的,现场有台异步电机 ...

请参考我上一贴说的。
在现场用示波器看一下你的电源。
合格的电源不会受到220V/380V的干扰影响,明显你的电源无法滤除FFT(快速脉冲群和浪涌)干扰。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-18 00:35 , Processed in 0.141044 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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