Servus euch allen, kann mir jemand helfen? Was wird mit diesem Befehl gemacht? TCNT ist doch ein Register, wieso sollte man das "high" setzen? Hab im datenblatt nur was von TCNT1H und TCNT1L gefunden. Gruß Mark
Alle gängigen C-Compiler können 16-bit Register zusammenfassen und als eines ansprechen.
1 | TCNT1 = 1; |
schreibt also den Wert 1 in das 16-bit Register aus TCNT1L und TCNT1H.
Mit TCNT1=1 wird nur das unterste Bit gesetzt. Wo ist also das Problem?
Das TCNT ist das Zählerregister. Da es 16-Bit breit ist, muss es in zwei Register geteilt werden (TCNT_H und _L) In C kannst du aber auch nur TCNT schreiber, den Rest macht der Kompiler für dich. TCNT1 = 1 schreibt in das Register eine 1. Der Zähler zählt dann einfach weiter 2,3,4...,2^15-1,0,1,2... Du kannst halt einen beliebigen Wert reinschreiben, der Zähler zählt dann einfach weiter. So kann man, wenn man z.B. den Überlauf auswertet, geziehlt einen Überlauf in einer bestimmten Zeit nach dem Schreiben ins TCNT-Register auslösen. Ingo
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.