Hallo, ich benötige dringend Hilfe um einen Timer zu programmieren ! Vorhandener Mikrocontrller: ATmega8 Anforderungen: Der Timer muss nach einschalten eine einstellbare Zeit (1ms bis 1h) warten und nach dieser Zeit ein anderes Gerät anschaltet. Er muss nach dem senden des Impulses wieder zurückgesetzt werden und die Zeit soll auf einen anderen Wert eingestellt werden können. Erst nach Eingangssignal soll der Timer wieder ablaufen, nicht automatisch in Schleife. Ich hoffe ihr könnt mir ein etwas weiterhelfen, da ich noch Anfänger bin und das nicht allein hinbekomm! Danke, scho im Vorraus! MfG JJ
Was davon kannst du alleine lösen? Kriegst du es hin, eine ISR (Interrupt) so aufzusetzen, dass diese alle (Hausnummer) 1ms aufgerufen wird? Ein Timer wird gestartet, indem man ihm einen Vorteiler zuweist und gestoppt indem man den Vorteiler wieder wegnimmt. Zusammen mit einer Taste müsstest du dann schon die Interruptfunktion (deine Zeitbasis) ein und wieder abschalten können. Der Rest ist dann reine Zählerei. Wenn die ISR alle 1ms aufgerufen wird, wieviele Aufrufe müssen dann gezählt werden, damit 1 Sekunde vergangen ist? Wieviele für 10 Sekunden, etc? Einsteiger versuchen gerne, eine bestimmte lange Zeitdauer dadurch zu erreichen, dass verzweifelt nach Möglichkeiten gesucht wird, den Timer auf diese Zeitdauer einzustellen. Das ist aber gar nicht nötig! Es reicht völlig, wenn der Timer dazu benutzt wird, eine bestimmte kurze Zeitdauer anzuzeigen. Alles weitere ist dann reine Zählerei. Jede Uhr funktioniert so! Für 1 Sekunde benötigt man einen genauen Taktgeber. Die Minuten, Stunden, Tage ergeben sich dann ganz einfach indem man Sekunden zählt.
Bis jetz noch nicht, aber ich versuch den Interrupt heut noch hinzukriegen ! Wo bekommt man denn gute Beispielprogramme her, damit man das Prinzip besser verstehen kann ? MfG JJ
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.