Ein kleines Beispiel, um mit dem Timer-1 zu arbeiten. Viel Spaß Gruß Bernhard
Bist Du wirklich so blöd es nicht zu kapieren, daß es hier keinen Preis für die meisten nutzlosen Threads gibt ? Peter
@Bernhard: Du kannst deine... einsteigerfreundlichen... Beispiele auch in einen einzigen Thread posten. Ich denke nicht das sich über die jeweiligen Beiträge so lange Diskussion entwickeln werden, das mehrere Threads angebracht wären. Damit wäre uns allen geholfen (Das Forum wird nicht so stark zugemüllt und wahrscheinlich wird dir dann auch nicht mehr ganz so viel Protest entgegenschlagen)
oder noch besser... man mache im wiki eine kategorie ASM code snippets und eine mit C code snippets und da tut man das dann rein.. dann haben 1. alle was davon weils nicht nach kurzer zeit aus den augen verschwindet und 2. forum ist wieder frei für diskussionen ;) 73 de oe6jwf / hans
hey leute, ihr seid schon die besten!!! *klatsch, klatsch* ich habe zB durch diesen "nutzlosen" thread endlich ein problem bei meinem projekt gelöst. und wenn ihr so supertoll seid, alles könnt und euer forum entmüllen wollt, dann redet doch selbst mit dem admin, dass er das wiki erweitern soll, damit ihr eure augen nicht mit einsteigerhilfen quälen müsst. weil MICH zB stört dieser "sinnlose" threat hier wirklich nicht! luxx
Jeder kann selbst Artikel erstellen, oder ich bin bevorzugt. http://www.mikrocontroller.net/articles/AVR_Assembler_-_Codefetzen Da kann man sich ja mal ranmachen.
Hallo Bernhard und Co, ich interessiere mich für die Timer-Geschichte nur leider habe ich keine Ahnung, wie ich so ein Ding auf dem ATMEGA8 programmieren soll. Ich möchte nur ganz einfach einen Ausgang für 30 Sekunden auf High setzen wenn ich auf einen Taster am Eingang einen High-Impuls anlege. Das mit dem Ausgang über den Taster schalten funktioniert gut nur die Zeitverzögerung für das Abschalten des Ports fehlt noch. Bitte wer kann mir da helfen ? Die Sache mit den Timern scheint mir nicht so einfach zu sein oder ? Vielen Dank schon mal ! PS: Hier mein Prog in das der Timer eingebaut werden soll (siehe Anhang). LG Boriza
Hi, du hast anscheinend den Anhang vergessen aber ist nicht weiter schlimm. Das Problem hier ist das 30s ziemlich lange ist, selbst für einen 16bit Timer. Das Grundprinzip hier ist zu schauen wie lange ein Timer Overflow braucht, bzw. wieviele pro Sekunde erzeugt werden. Im AVR-Tutorial z.B. kriegt man mit 4Mhz und einem Prescaler von 1024 15,2587 Overflows pro Sekunde. In 30s währen es schon 457,761 Overflows. Die Aufgabe hier ist es nun diese 458 (oder 457) zu zählen, am besten geht das mit 2 Registern die als 16 bit Register auf 457 gesetzt werden wenn der Taster gedrückt wird. Bei jedem Interrupt wird diese herunter gezählt, wenn es null ist sind logischerweise 30s vergangen und man kann endlich die Aktion ausführen die man wünscht. In deinem Fall einen Pin wieder abschalten.
Warum Overflow?? Timer 1 hat doch zwei Compare-Einheiten. Das geht viel besser, da man den Timer durchlaufen lassen kann und trotzdem trotzdem beide Compares und den ICP nutzen kann. Man arbeitet dazu mit den Compare-Registern (Aufaddieren des Intervalls auf den jetzigen Stand des Compare-Registers). Und weil man auf diese Art den Timer nicht stört, bekommt man die Compare-Interrupts auch noch garantiert jitterfrei, Verzögerungen beim Int-Aufruf addieren sich also nicht.
Hi >Im AVR-Tutorial z.B. kriegt man mit 4Mhz und einem Prescaler von 1024 >15,2587 Overflows pro Sekunde. In 30s währen es schon 457,761 Overflows. Bitte richtig nachsehen oder mal selbst rechnen . Das gilt für einen 8Bit-Timer. Ein 16Bit-Timer hat unter gleichen Bedingungen eine Overflowzeit von 16,8s. >Die Sache mit den Timern scheint mir nicht so einfach zu sein oder ? Doch. Wenn man sich einmal selbst durchgearbeitet hat geht das beim nächsten mal wie von selbst. 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.