Forum: Compiler & IDEs Timer/Counter mega16


von Dirk Baumann (Gast)


Lesenswert?

Hi,
ich verzweifle ein wenig mit dem Timer des Mega 16. Die Timer des 2313
habe ich prima zum laufen bekommen aber an dem Mega 16 gehe ich
zugrunde. Die Beschreibungen beziehen sich alle immer auf den 2313 und
mit dem Datenblatt vom Mega 16 komme ich auch nicht unbedingt weiter.
Folgende Situation: Ich möchte den Timer aktivieren mit Vorteiler (256
oder 1024). Ohne Interrupts ohne sonst was. Ich lese den Timer aus dem
Programm heraus aus.

TCCR1A = 0;
outp ( (1<<CS12 | 0<<CS11 | 0<<CS10), TCCR1B);

mit welchem Befehl kann ich jetzt den Wert auslesen? Ich glaube das da
mein Fehler liegt….

Mit freundlichen Grüßen
Dirk

von Alex (Gast)


Lesenswert?

unsigned short variable = 0;
variable = TCNT1;

von Dirk Baumann (Gast)


Lesenswert?

Prima Danke! Das hat funktioniert.
Heißt das dens jetzt auch, das ich den zweiten Timer mit

TCCR2 = 0;
outp ( (1<<CS22 | 0<<CS21 | 0<<CS20), TCCR1B);

starten und mit

unsigned short variable = 0;
variable = TCNT2;

auslesen kann? Oder kann ich nicht beide Timer benutzen?

Mfg Dirk

von Alex (Gast)


Lesenswert?

Das würde auch funktionieren.

Gewöhne dir nur bitte die Schreibweise
TCCR2 = _BV(CS22) | _BV(CS21) | _BV(CS20); an. (nicht TCCR1B!)

Für Timer2 würde allerdings
unsigned char variable = 0;
ausreichen, da es nur ein 8 Bit Timer ist.

von Dirk Baumann (Gast)


Lesenswert?

Danke noch mal für Deine Hilfe - funktioniert alles.

Mit freundlichen Grüßen
Dirk

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.