Forum: Mikrocontroller und Digitale Elektronik Elegante Möglichkeit Pulsfolgen auszugeben


von Tina (Gast)


Lesenswert?

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...

von Quentchen (Gast)


Lesenswert?

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?

von aha (Gast)


Lesenswert?

Die fehlende Idee ? Abzaehlen mit einer Zustandsmaschine

von Quentchen (Gast)


Lesenswert?

>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)

von H.j.Seifert (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von aha (Gast)


Lesenswert?

>>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
Noch kein Account? Hier anmelden.