#define F_CPU 3686400 #include #include #include int main(void) { VPORTA_DIR=0b11000000; // LEDs: A6, A7 cave!: siehe auch die ISRs CPU_CCP = CCP_IOREG_gc; CLKCTRL.XOSCHFCTRLA = CLKCTRL_ENABLE_bm | CLKCTRL_RUNSTDBY_bm; CPU_CCP = CCP_IOREG_gc; CLKCTRL_MCLKCTRLA=CLKCTRL_CLKSEL_EXTCLK_gc; //RTC RTC.CTRLA = RTC_RTCEN_bm; // RTC aktivieren while (RTC.STATUS > 0); // Warten, bis der RTC bereit ist while (!(CLKCTRL.MCLKSTATUS & CLKCTRL_OSC32KS_bm)); RTC.PITINTCTRL = RTC_PI_bm; RTC.PITCTRLA = RTC_PERIOD_CYC32768_gc | RTC_PITEN_bm; RTC.CLKSEL = RTC_CLKSEL_OSC32K_gc; //TCA TCA0.SINGLE.PER = 3600-1; //180; TCA0.SINGLE.CTRLA = TCA_SINGLE_CLKSEL_DIV1024_gc | // 3600Hz source TCA_SINGLE_ENABLE_bm; // start timer TCA0.SINGLE.CTRLB = TCA_SINGLE_WGMODE_NORMAL_gc; // set Normal mode TCA0.SINGLE.INTCTRL = TCA_SINGLE_OVF_bm; sei(); while (1) { } } ISR(RTC_PIT_vect) { VPORTA_IN=0b10000000; RTC.PITINTFLAGS = RTC_PI_bm; } ISR(TCA0_OVF_vect) { VPORTA_IN=0b01000000; TCA0.SINGLE.INTFLAGS = TCA_SINGLE_OVF_bm; }