Hi, I have a few questions relating to the PIC 12C508: 1. How do you use TMR0. I know you can assign a prescaler to it, to say make a delay, but how do you know when it has timed out, as there are no interrupts. It would appear that you have to keep looking at it, as there is no indication that it may have timed out ? Basically the only advantage in using TMRO rather than a General Purpose register is the fact that you can assign a prescaler to it. 2. Concerning the SLEEP instruction, wake up on bit change, the only sure way I managed to get it to goto sleep and remain there, till an input bit changed was to insert the command CLRF GPIO. Without this, it actioned the SLEEP command and then woke up.The OPTION register was set up for Enable wake up on bit change, and the Prescaler assigned to TMR0, /MCLR tied high and configured as enabled. The WDT timer was also disabled. Even reading the input pins prior to going to SLEEP didn't help MOVF GPIO,W. 3.How accurate is the 4 Mhz Internal RC Oscillator, and how do you (a) read the Calibration factor and use it? I have two loops configured to give 0.125 msec 'ticks' 32 times giving a delay of 4.0 seconds. The actual delay is nearer 4.6 seconds. Using the Stopwatch in mplab, the inner loop executes 500 instruction = 500 usecs, this is repeated 250 times 125000 usecs. The complete sequence is repeated 32 times. I know there should be a small error, in repeating the 500usecond loop 250 times, but the inner loop is exactly 500 instruction cycles using the stopwatch, there is a small overhead doing it 250 times, but nothing that should cause this size of error. I have also confirmed this using the stopwatch function for the first few 0.125 msec 'ticks'. I would be grateful for any help. Thanks in advance, -Sandy.