I just always assume that I'm going to screw the whole thing up from the get go and write it with debugging in mind... For example, I'll write all my config codes, then simple tests to make sure they're all correct. Then I do the interrupts and put code in each interrupt to make sure they execute properly. Then I do my other functions once at a time. It's a little slower, but I find it saves me a lot of grey hair. I also make liberal use of LabCenter's Proteus Lite simulator. It's not perfect, but I've so far never had a problem stemming from it, just from my own problems. Mike H. _________________________________________________________________ The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body