我用的芯片是PIC16F72;C语言编程,外部12M晶振,电容为22P,为了测试板子工作正常与否,我在程序里设计复位后让某个LED亮一会,然后关闭,再让另一个灯不停地闪烁,并在PWM输出引脚输出一个固定频率的PWM波。
程序在MPLAB的SIM里运行程序没有问题,但是把程序写进Flash后,发现灯不亮,PWM无输出,但是晶振已经起振。无意中发现,如果用示波器的探头(参考端接地)去碰晶振的某个脚的话,灯就亮起来了,反复试验发现,只要晶振的某个引脚接触了人体或者探头,程序就能运行,否则就不能运行,
当有东西接触晶振引脚时,检测PWM输出发现周期不正确,占空比也不规则,当不与晶振引脚接触时,程序就停止。
后来我使能了看门狗,发现当不接触晶振引脚时,过一会程序就会复位(灯灭了),但不会重新运行(灯没有再亮起来)。这时再去接触晶振引脚程序又能运行起来,
在下能力有限,实在无法解决这个问题,故来请教,因时间紧迫,急盼回复,感激不尽!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我要晕死了,查了一天才找出这个BUG
一周热门 更多>