>Alan B. Pearce wrote: >> void __attribute__ ((interrupt)) _OC1Interrupt(void); > >Alan, try this: > >void __attribute__((interrupt, no_auto_psv)) _OC1Interrupt(void) >{ > printf("\rOC1Interrupt!\r"); > while(1) ; >} > >If you don't have a UART, put a breakpoint on the "while" line. Well, the base problem seems to be that the Interrupt Vector Table isn't filled in, despite defining the interrupt vector. Looking at the table in the Program memory window of MPLAB shows it full of 0xFFFFFF, whereas if I build the Interrupt example from the 'Learning to Fly the PIC24' book, that fills the IVT & AIVT with _DefaultInterrupt, except for the desired interrupt vector which points correctly to the Interrupt Handler. So the problem is still that the IVT doesn't get set up. I have been through the loop of putting all the code in one module, but that hasn't sorted this out either. I cannot see anything in the Build Options/Project that look like they could cause the Liker to not initialise the IVT, and am now at a total loss as to what is screwed up. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist