So würde es in C aussehen, ein paar defines fehlen, die aber selbsterklärend sind. Übersetzen nach BASIC verbleibt als Hausaufgabe
Code:void timer1_init() { #if defined (__AVR_AT90S2313__) // Timer1 ist Zähler TCCR1A = 0; // Timer1 läuft mit voller MCU clock TCCR1B = _BV (CS10) | _BV (CTC1); #elif defined (__AVR_ATmega8__) // Mode #4 für Timer1 (Manual S. 97) // und volle MCU clock TCCR1A = 0; TCCR1B = _BV (WGM12) | _BV (CS10); #else #error Dont know how to setup timer1 #endif // PoutputCompare für gewünschte Timer1 Frequenz OCR1A = (unsigned short) ((unsigned long) F_CPU / INTERRUPTS_PER_SECOND-1); // OutputCompare-Interrupt für Timer 1 TIMSK |= _BV (OCIE1A); } SIGNAL (SIG_OUTPUT_COMPARE1A) { }
Lesezeichen