void fatal_interrupt () { /* Infinite loop for debugging Returning would not help as it's necessary to clear the interrupt flag. */ for (;;) cop_optional_reset(); }
void __premain (void) { // in case special mode enabled, avoid conflict on PORTE PEAR |= NECLK; // bgnd mode stops COP and RTI clocks COPCTL = RSBCK; // stops TCNT counter when debugging stops TSCR1 |= (1<<5); // TFRZ // PLL CLKSEL = 0; // disable PLL to configure // xtal 16MHz, bus 24MHz SYNR = 3 - 1; REFDV = 2 - 1; while (!(CRGFLG & 0x08)) // wait for PLL LOCK cop_optional_reset(); CLKSEL |= 0x80; // use PLL // init switch inputs PERH = 0xff; // pullups // outputs #if PORT_LED==M6811_PORTB //PORTB DDRB = 0xff; // init LED #elif PORT_LED==M6811_PORTA //PORTA DDRA = 0xff; #elif PORT_LED==M6811_PTT //PTT DDRT = 0xff; #elif PORT_LED==M6811_PTM //PTM DDRM = 0xff; #elif PORT_LED==M6811_PTP //PTP DDRP = 0xff; #elif PORT_LED==M6811_PTH //PTH DDRH = 0xff; #endif }