/* hackspacecon wand firmware interrupt routines */ #include #include "rgbled.h" extern uint8_t run_rgbprog; // TCB0 general interrupt ISR(TCB0_INT_vect) { uint8_t intflags = TCB0.INTFLAGS; // in this program, this interrupt is only used for timing. // we'll now return to executing loop() // reset the INTFLAGS - necessary on this series TCB0.INTFLAGS = intflags; } // button interrupt ISR(PORTA_PORT_vect) { uint8_t intflags = PORTA.INTFLAGS; // shitty debounce; this is bad practice delay(5); // was our pin changed? if (intflags & PIN2_bm) { // start or re-start running a program run_rgbprog = 1; // run a new program } // reset the INTFLAGS - necessary on this series PORTA.INTFLAGS = intflags; }