Hi,
deine Anfangsberechnungen sind richtig, allerdings machst du einen Fehler, weil ein Timer im AVR nicht von 0 - xxx sondern von xxx - max. Wert ( 8- od. 16Bit) zählt.
Also:
1) 16MHz / 8 = 2MHz
2) 1 / 1MHz = 0.5µs
3) (65536-50000)*0.5µs = 7768µs = 7.768ms = 0.007768s
4) 10s / 7768µs = 1287
Gruß
Chris
EDIT:
Deine Vorangehensweise ist übrigens IMHO auch nicht ganz richtig. Normalerweise benutzt man den Interrupt von einem Timer, um eine bestimmte Aktion auszuführen. Du könntest beim Ovf in eine Sub springen, dort dann x inkrementieren und das dann im Main-Loop abfragen. Oder du multiplizierst die schon vergangen Timer-Ticks mit einer Variable / Konstante. Wenn das Ergebnis dann einen bestimmten Wert erreicht oder überschreitet, kannst du wieder eine Aktion durchführen.
Lesezeichen