-
-
Erfahrener Benutzer
Roboter Experte
Du kannst, um den Timer abzuschalten einfach den Prescaler auf 0 setzen (in TCCR2).
Genauso kanst du TCCR2 ganz löschen (auf 0x00 setzten), was fast den selben Effekt hat, nur dass es zusätzlich (zu deinem Vorteil) die normale Port-operation wieder freigibt (also vergiss nicht den PORT als Ausgang, und auf GND zu legen).
Wie schaltest du den Timer wieder an?: du Setzt TCCR2 einfach wieder auf den Wert, der er vorher war, bevor du das Register gelöscht hast.
Und wann stellst du den Timer wieder an?: Hierzu benutzt du den "Input Capture Interrupt" des 16bit-Timers, der ja jede 20ms auftritt. (ISR(TIMER1_CAPT_vect){...}). Vergiss nicht, ihn zu initialisieren: TIMSK |= (1<<TICIE1);
In ihm machst du also: TCCR2 = (1<<WGM20) | (1<<COM21) | (1<<CS22);
So sollte es eigentlich funktionieren. Wenn nicht, schick mir das Programm, dann schau ich mir das nochmal an.
Gruß, Yaro
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen