#include #include uint8_t temp; void InitCounter( void ); int main(void) { // internen Oszillator auf 32MHZ einstellen OSC.CTRL = 3; while(OSC.STATUS != 3) { } CCP = 0xD8; CLK.CTRL = 1; temp = 255; //TASTER initialisieren PORTB.DIR = 0x00; //Interrupt Level an PORTB festlegen PORTB.INTCTRL = 0x03; //Interrupt an PORTB PIN0 freigeben PORTB.INT0MASK = 0x01; //Interrupt auf fallende Flanke einstellen PORTB.PIN0CTRL = 0x02; // Interrupts aktivieren und alle Level freigeben sei(); PMIC.CTRL=0x07; //InitCounter(); //LEDS initialisieren PORTA.DIR = 0xFF; PORTA.OUT = 0xFF; while(1) { } } void InitCounter() { // Counter0 initialisieren TCC0.CTRLA = 6; TCC0.INTCTRLA = 0x03; TCC0.PER = 31249; } ISR (PORTB_INT0_vect) { if (temp > 0) { temp--; PORTA.OUT = temp; } else { temp = 255; } } ISR (TCC0_OVF) { }