Hallo, Ich möchte Timer2 so initialisieren dass ich nach jedem Überlauf(100µs) einen Sendepuls erzeugen. Ich nehme den Prescaler 256 aber irgendwie klappts nicht weil ich wahrscheinlich entweder den falschen Prescaler(256) nehme oder einen Startwert dafür berechnen muss. Also die Frage ist: wie wird der Startwert berechnet? Controller: mega328p F_CPU = 16Mhz Timer2-Funktion: void Timer2Init(void) { TCCR2B = (1<<CS22)|(1<<CS11) ; TIMSK2 = 1<<TOIE2 ; } Danke. Gruß
Hi
>Also die Frage ist: wie wird der Startwert berechnet?
Welcher Startwert? Der Timer kann CTC.
MfG Spess
Robert_1 schrieb: > Also die Frage ist: wie wird der Startwert berechnet? spess53 hats ja schon gesagt: CTC ist das was du suchst. Aber um auch auf die Frage ein wenig einzugehen. Deine Frage ist auf dem Niveau von: Wenn ich präzise alle 2 Minuten 30 Sekunden "Aua" schreie, wie oft muss ich dann "Aua" schreien, bis 1 Stunde um ist. That's it. Das ist im Prinzip die Berechnung die du machen musst. Und das ist so trivial, dass jeder sie hinkriegt, wenn er nur gewillt ist, ein bischen zu rechnen und sich überlegt, was so ein Timer eigentlich macht und wie er arbeitet. FAQ ganz unten, letztes Kapitel
Hallo, >Welcher Startwert? Ich meine, der Startwert so zu wählen dass ich in der ISR einen Puls nach jedem Überlauf erzeugen kann. ISR(....) { PORTB = ~PORTB; TCNT2= 0 } >Der Timer kann CTC Okay bin nicht drauf gekommen weil ich das einfach nicht verstehe:-( was soll ich im Code dann ändern damit der Timer in dieses Modus betrieben wird? Und wenn man den timer 2 in Normal Modus betreiben will, sollte man einen Startwert berechnen oder? Danke Gruß
>Wenn ich präzise alle 2 Minuten 30 Sekunden "Aua" schreie, wie oft muss >ich dann "Aua" schreien, bis 1 Stunde um ist. Auaaaaa :-)))
Hi >Okay bin nicht drauf gekommen weil ich das einfach nicht verstehe:-( was >soll ich im Code dann ändern damit der Timer in dieses Modus betrieben >wird? Datanblatt Timer2 Register Description lesen. Stichwort WGM-Bits. MfG Spess
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.