Hi all, I am a newbie of this mailing. A question has been puzzling me and I want to get some answers. I am a programmer writing software for microchips. I just wrote one for a product. When the engineers started testing it with noises and sparks of voltages, the software failed. I debugged the software and found that the noises caused the interrupt routine stop running, as if the T0IE had been reset to clear. I then wrote a routine to watch the interrupt; if it stops running I will use watchdog to restart the whole program. That works fine. Thus also proved that the noises did cause the interrupt stop running. Now this is my question: Can someone explain to me why the noises can change the value of the registers of the program? If it can change T0IE, what else would it change? I can't monitor all the variables; the thought that the noises can change values arbitrarily is very scary. It could be a disaster. Someone suggested me reset the program periodically. (For example, use watchdog and alike.) If so, is this a common practice that should be used on all projects? I believe there is some official guidance on this matter. Can someone enlighten me? Thanks alot!! Tony Pan -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads