Forum: Compiler & IDEs Zeit messen? Aber wie?


von Divison (Gast)


Lesenswert?

Hallo,

wie kann ich denn mit den Timern meines 8535 eine Zeit messen?

Ich dachte da an:

Taste drücken -> Timer startet -> Timer läuft eine festgelegte Zeit ->
Nach ablauf der zeit (z.B. 5 Minuten) geht eine LED an.

Und das alles möchte ich gerne mit avr-gcc machen.

Könnte mir dabei jemand helfen?

von Herb (Gast)


Lesenswert?

Einfach nen Counter mit Prescaler laufen lassen, bei Overflow
Variable(n) hochzählen. Start und Stop des Timers durch
Tastendruckabfrage.

Wo genau ist das Problem?

von Divison (Gast)


Lesenswert?

Ähhh was ist denn ein Prescaler? Und wielange dauert es bis ein Overflow
passiert?

von leo9 (Gast)


Lesenswert?

Wie wärs mit dem Datenblatt?

1) der Timer braucht einen bestimmten Takt mit dem er zählt, im
allgemeinen wird dieser Takt direkt vom Prozessortakt abgeleitet. Läuft
der uP mit z.B. 4MHz, so wird der Timer alle 250us inkrementiert, bei
einem Taktverhältnis von 1:1 (= der Prescalerwert). Bei 8:1 nur noch
alle 2ms.

2) wenn der Timer "nur" überläuft passiert dies alle 256 x 250us;
zumindestens bei einem 8bit-Timer, einem 4MHz-Quarz, einem Prescaler
von 1:1 und einer internen Taktung.

Wenn ich diese Rahmenbedingungen falsch erraten haben sollte, mußt du
die Werte halt auf deine Anwendung anpassen oder deine Fragen konkreter
formulieren ;-)

grüsse leo9

von Rahul (Gast)


Lesenswert?

Ich glaube, du hast dich etwas mit den Grössen vertan:
Bei 4MHz dauert eine Taktperiode nicht 250µs, sondern 0,25µs. Sofern
der Timer direkt mit der Prozessor-Takt gekoppelt ist, wird der Timer
auch alle 250ns um eins erhöht.
(1MHz hat doch noch eine Taktdauer /-periode von 1µs = 10e-6 Sekunden,
oder?)

Berichtige mich bitte, wenn ich falsch liegen sollte.

Gruß
Rahul

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.