本帖最后由 huandaczq 于 2019-5-9 23:07 编辑
最近遇到一个问题,不知道是硬件出了电磁干扰的问题还是芯片出了问题,还是说其他出了什么问题,软件方面暂时觉得没有问题。
【起因】:为了方便观察,在每次循环结束以后我加了N个delay,大概为数秒,为了方便观察。然后我肉眼可以观察的发现,程序几乎没有停止。就宛如delay没有被执行一样,在这样的情况下。
【经过】各种改软件,看实际硬件反映来比较N次以后
【结果】不知道为何能跳出while(1)的循环
缩略版代码:
bbb=0
while(1)
lata0=1
while(bbb!=1)
if (b==1)
lata0=0
bbb=1
while(1);
lata0=1可以当作小灯亮或者小车行,在代码最后一段,在跳出while(bbb!=1)之后进入死循环while(1);不动才是,然而实际发现是,小车或者小灯在运动的的时候,突然关断了0.几秒后又开始运行了,照理说,进入while(1);应该是不会在开启了。重启在conguration bits里已经关闭了。所以这个芯片出了问题了吗?还是说硬件出了问题了? |
简单点来说,就是在大循环里将某个IO口拉低以后,让程序停在子循环---while(1);---里面,预期是IO口是无限低电平,但是实际却是高电平为什么?