>> However, IMHO a more elegant C++ solution would be to define >> the interrupt >> handler as a private function within the class. > Avr-gcc is expecting a fixed name for the vector. See avr-libc for how > the ISR macro is defined. > > Note that there is no C++ maintainer for AVR GCC. > > Eric Weddington
Sorry - I forgot to say the problem lies with C++ mangling function names, so if the private class method is, say: void TIMER0_OVF_vect(void) __attribute__ ((signal, __INTR_ATTRS)) { Flags |= TIMER0_OVERFLOW; // indicate the event type TCNT0 = TIMER0_TIMEOUT; // restart the timeout } avr-gcc helpfully replies with: Main.c(28): warning: '_ZN7cTimer011__vector_16Ev' appears to be a misspelled signal handler and of course does not bother to link the handler. Manually adding the line: ISR_ALIAS(TIMER0_OVF_vect, _ZN7cTimer011__vector_16Ev); after the class definition makes everything work, but my question is: is it possible to do this without the cutting and pasting? Ron Kreymborg _______________________________________________ AVR-chat mailing list AVR-chat@nongnu.org http://lists.nongnu.org/mailman/listinfo/avr-chat