打印

程序跑飞后进行现场回复

[复制链接]
1475|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yufe|  楼主 | 2021-5-6 22:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学51,做了个东西直流碳刷电机一转继电器就跳个不停,要么就死机,电路上也下了不少功夫,就是不好解决,想从程序上下手,思路是利用定时器溢出产生中断,让中断把程序拉回到主函数开始,然后判断PSW5,switch之类的,现在的问题就是不知道这个中断该怎么写,如果用setjmp和 longjmp,该怎么写

使用特权

评论回复
沙发
heweibig| | 2021-5-6 22:30 | 只看该作者
这种频繁出问题是不行的,必须从硬件上解决

使用特权

评论回复
板凳
yufe|  楼主 | 2021-5-6 22:32 | 只看该作者
您的意思软件抗干扰可有可无么

使用特权

评论回复
地板
juventus9554| | 2021-5-6 22:34 | 只看该作者
对于这种问题,程序不好解决,还得从消除电磁干扰入手,加隔离模块,优化电路板电磁兼容设计,多加些滤波模块,例如电感,电容,磁珠……

使用特权

评论回复
5
yufe|  楼主 | 2021-5-6 22:37 | 只看该作者
是,电机引线和电源上串了磁环好多了,可是还是有不听话的时候

使用特权

评论回复
6
wangzsa| | 2021-5-6 22:40 | 只看该作者
不要去相信程序会跑飞,更不要信啥跑飞了还能跑回来的鬼话,我做的所有东西都是用在工业上,你说的那继电器根本就不算个事,电源处理好点,输入信号处理合理点,程序有逻辑上的隐患没

使用特权

评论回复
7
yufe|  楼主 | 2021-5-6 22:41 | 只看该作者
主要是看了人家插卡电表做得太牛了,塑料外壳,而且变压器和单片机就在一起,我这个还得用两个配电箱一个装单片机一个装电机驱动器件之间的连线还得套磁环,太乱了

使用特权

评论回复
8
zhuww| | 2021-5-6 22:44 | 只看该作者
我做的一个MCU驱动继电器的程序,继电器是开通交流220V的,在没有真正接入220V时连续工作20小时没有出现问题,但是接入了交流部分后偶尔死机,能请教探讨一下吗?

使用特权

评论回复
9
jlyuan| | 2021-5-6 22:47 | 只看该作者
硬件的问题硬件解决,否则,批量后,你就惨了。

使用特权

评论回复
10
stly| | 2021-5-6 22:49 | 只看该作者
可以考虑加电源隔离模块消除干扰

使用特权

评论回复
11
zhenykun| | 2021-5-6 22:55 | 只看该作者
简单的用NOP,精确的用一个定时器好了

使用特权

评论回复
12
chuxh| | 2021-5-6 22:58 | 只看该作者
很多硬件问题软件是无法解决的,测量一下VCC的波形,是不是电源不稳定导致复位!

使用特权

评论回复
13
pengf| | 2021-5-6 23:00 | 只看该作者
程序跑飞可以用看门狗强制复位来恢复,但楼主遇到的情况显然抗干扰设计严重不足,应先解决这部分的电路设计问题。

使用特权

评论回复
14
yufe|  楼主 | 2021-5-6 23:03 | 只看该作者
是,我这设计的肯定有问题,开始那个集成块捅烧了,又网购了几个,这几个还不如烧的那个稳定。不想通过看门狗复位,因为T1数据就跟着复位了,想把跑飞的程序拉回主程序开始,然后通过判断,然后继续计数之类的

使用特权

评论回复
15
shimx| | 2021-5-6 23:05 | 只看该作者
你的硬件电路有问题不要弄软件了,专心把隔离以及抗干扰弄好吧。

使用特权

评论回复
16
jiajs| | 2021-5-6 23:07 | 只看该作者
贴出你的电路图吧···硬件问题不解决,软件上再怎么处理也弥补不了硬伤。

使用特权

评论回复
17
wyjie| | 2021-5-6 23:10 | 只看该作者

动力电源和控制电源相对独立,信号线别和大电流电源线搞在一起
是用电池的话改单片机一组电池电机一组电池两块共地就好

使用特权

评论回复
18
juventus9554| | 2021-5-6 23:13 | 只看该作者
楼主先搞好硬件吧,软件只是个幅助作用,解决不了根本问题。你的定时器再飞怎么办呢?????

使用特权

评论回复
19
zhuww| | 2021-5-6 23:15 | 只看该作者

排除干扰问题,很可能是你的供电电流不够!

自动复位可以用“看门狗”

使用特权

评论回复
20
supernan| | 2021-5-6 23:18 | 只看该作者
一、楼主的硬件设计有问题,应该是电磁干扰没有处理好   二、程序加看门狗复位,跑飞不喂狗后复位。  三、这种小程序还会跑飞一定是程序内部逻辑问题,查一下有没有野指针/堆栈溢出等问题,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

983

主题

10170

帖子

1

粉丝