Interrupt Service Routine (ISR) crashing

el_supremo:
Any variable that is accessed from within an ISR, e.g. dimming, should be declared volatile.

volatile uint8_t dimming = 128;

Pete