Hallo, ich suche nach einer möglichst eleganten Lösung, einen ATMega 48 unter Bascom so zu programmieren, dass er mehrere Folgen von 200 Pulsen mit 5 ms Pulsdauer und 5 ms Pause dazwischen ausgibt, und dann bis zur nächsten Folge 8 s lang wartet. Waitms und waitus gehen mit ein paar for-loops, aber das ist leider nicht sonderlich genau. Hat jemand eine bessere Idee? Irgendwie deke ich da an den Timer, aber so recht kommt mir da keine zündende Idee...
Timer sind das Mittel der Wahl genaue Verzögerungen zu erzeugen, die darüber hinaus noch nebenläufige Berechnungen, Interaktionen etc. ermöglichen. Da Du Timer verwenden willst, worauf bezieht sich da die Frage nach einer Idee die Dir fehlt?
Die fehlende Idee ? Abzaehlen mit einer Zustandsmaschine
>Abzaehlen mit einer Zustandsmaschine
Was ist denn das, eine "Zustandsmaschine"?
Wo haben die hier nur ihre Terminologie her?
Zum Zählen nehme ich immer Zähler. Nur in schlimmen Träumen, nach Genuss
von ganzen Truthähnen, interpretiere ich die als Automat .
Macht aber ohnehin keinen Sinn.
Heheh. Das reimt sich. Und was sich reimt ist gut. (Pumuckl)
Timerinterrupt programmieren (min. alle 5ms), ich nehme eigentlich fast immer einen 1ms-Timer. Tja, und dann zählst du ein paar Variablen und löst die entsprechenden Aktionen aus.
Tina schrieb: > Waitms und waitus gehen mit ein paar > for-loops, aber das ist leider nicht sonderlich genau. Also beim AVR-GCC sind die Delays der Lib ziemlich genau, vorausgesetzt, der AVR läuft mit nem Quarz! > Irgendwie deke ich da an den Timer, aber so recht kommt > mir da keine zündende Idee... Im Datenblatt steht alles nötige drin. Den Timermode (CTC) setzen, den Vorteiler und das Compareregister, fertisch. Ich weiß nicht, ob Bascom auch alle Konstanten zur Compilezeit ausrechnet. Beim AVR-GCC schreibt man einfach die Formel hin und definiert die verwendete Quarzfrequenz und das gewünschte Zeitinterval. Peter
>>Abzaehlen mit einer Zustandsmaschine >Was ist denn das, eine "Zustandsmaschine"? > >Wo haben die hier nur ihre Terminologie her? Eine Zeit wird mit einem Timer gemacht, und eine komplexe Sequenz von Pulsen mit einer Zustandsmaschine um einen Timer heum.
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.