-
-
Erfahrener Benutzer
Roboter Genie
Hi!
erstens:
"TCCR0 |= (1<<CS01) | (!(1<<CS00)) | (!(1CS02));"
Das führt nicht zum gewünschten Effekt, da Du mit einem "NOR" die Bits nicht 0 setzen kannst.
Du meinst zB
TCCR0 &= 0b11111010;
Ist aber egal, da die Biits von vornherein ohnehin 0 sind.
Das ist aber auch falsch, da Du einen Prescaler von 0 brauchst und das geht bei Timer 0 so:
TCCR0 &= 0b11111001;
Du willst also nach 150 Takten den T0OVF IRQ auslösen, also:
Timer = 256 - 150;
Das hier:
"timer = (256-F_CPU/8/100000);"
geht auch nicht, wenn es zeitkritisch ist, weil die Berechnung verhältnismäßig lange dauern kann. Sowas wenns geht vermeiden.
Durch 8 teilen sollte man auch eher mit >> 3.
Fusebits sollte man natürlich richtig einstellen, aber da Du nichts nähres beschreibst...
Gruß
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen