调试AVR的时候遇到的奇葩问题:有一个开关端口按下就直接跳到急停中if(JTSTOP){。。}中

2019-07-15 07:30发布

如图所示,就这么几句简单,MOTO_RUN()中是根据开关状态判断5个电机的运行,有4个开关都是可以正常运行的(5个电机控制使用一个函数控制),只有一个开关端口是ATMEGA16(L)的SDG0,这个开关按下就直接跳到急停中if(JTSTOP){。。}中(急停开关的端口是SJJ0)。在MOTO_RUN()所在的位置直接操作该端口也是跳急停处(在此处操作其他端口,正常)。但是在主函数下另外在写一个while(1),单独操作该端口是正常的(直接判该端口电平执行操作,正常),硬件检查过没问题。更奇葩的是另外一个程序(也是使用了该端口,这部分的代码一样)可以正常使用。在循环中放了个if(JTSTOP){while(1)},能进入死机,没有J-link可以跟。

M48PH8VQA3S1M73SMNA13_J.png
0条回答

一周热门 更多>