Hallo,
ich habe beim mega128 Timer0 bereits in Betrieb.
Zum Beispiel so....Die Interruptroutine funktioniert auch wunderbar.Code:TCCR0 = 0; TCCR0 = _BV(WGM01) |_BV(CS01) | _BV(CS00) | _BV(CS02); OCR0 = 156; TCNT0 = 0; TIFR = _BV(OCF0); TIMSK = _BV(OCIE0);
Nur würde ich lieber den 16 Bit Timer verwenden. Zwecks höherer Auflösung und bis zu 3 Compare Werten. Nur blicke ich bei Timer1 durch das Datenblatt nicht ganz durch.
Könnte mir jemand mal ein Beispiel geben wie ich Timer1 initialisieren kann?
Dann könnte ich das nachvollziehen.
Vielen Dank im Voraus
gruß ceekay \/
Konnte es doch selbst lösen.
hab mir die "iom128.h" und das Datenblatt nochmal zur Brust genommen
Für alle die es interessiert wie der Timer1 initialisiert wird:
Leider hab ich noch nicht rausbekommen wie ich den CTC Mode verwenden kann, damit der Zähler beim Compare Match automatisch zurück gesetzt wird. Zur Zeit setze ich ihn noch manuell in der Interruptroutine zurück.TCCR1A = 0; //Normal Mode
TCCR1B = _BV(CS10) | _BV(CS12); //Prescaler auf 1024
TCCR1C = 0;
TCNT1L = 0; //Timer zurück setzen
TCNT1H = 0; //Timer zurück setzen
OCR1AH = 00111101;
OCR1AL = 00001001; //entpricht 15625
TIMSK = _BV (OCIE1A); //CompareA Interrupt zulassen
Vielleicht weiß das ja jemand
gruß ceekay \/
Lesezeichen