I've just produced my first prototype PIC circuit, and last night got it working exactly as required. The main problems I had to fix were TMR0 related, as I didn't simulate these functions to test them as it took too long. There is one that I would like to see if there is a better solution for: The setup is: PIC16F84 with 4MHz clock TMR0 driven from the external clock the prescaler assigned to TMR0 and set to /256 load TMR0 with 0x3D, so that TMR0 increments 195 time before wrapping This generates an interrupt from the timer wrap every 50ms or so. I want this timer to keep running, so as part of the interrupt handler, I reprime TMR0 with 0x3D to wait for another 50ms, but in doing so, I discovered, this turns off the prescaler. So my fix was also to reset the OPTION byte to reassign the prescaler each time I reprime TMR0. This works fine, but I am worrying slightly that: a) it seems a little clunky b) there is a gap between repriming TMR0 and reassigning the prescaler where TMR0 is running at full speed So what have you all done out there? Thanks, Andy -- Andy Baker mailto:ab@datcon.co.uk ATM, MPLS and Telecoms Development Group Data Connection Ltd., Chester, UK http://www.datcon.co.uk/ Tel: +44 (0) 1244 313440 Fax: +44 (0) 1244 312422