Forum: Mikrocontroller und Digitale Elektronik Was wird durch "TCNT1 = 1;" gemacht?


von Mark (Gast)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

Mit TCNT1=1 wird nur das unterste Bit gesetzt. Wo ist also das Problem?

von Ingo (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.