Forum: Mikrocontroller und Digitale Elektronik Längere wartezeit statt 'nop'


von anfänger (Gast)


Lesenswert?

hallo
wie kann ich nen atmega16 dazu bringen z.b. 5sec nichts zu tun und erst
dann weiter zu machen, wenn z.b. 5sec vorbei sind,  wie zb bei nem 5 sec
'beep'. weil mit nop braucht man ja 5000000 mal nop , bis er
weitermacht um des zu ereeichen.

von TravelRec. (Gast)


Lesenswert?

Timer benutzen, Overflow-Interrupt einrichten, Zähler in der
Interrupt-Routine hochzählen und ausrechnen, bei welchem Vorteiler und
welcher Taktfrequenz wieviele Zähl"stufen" nötig sind, bis 5 Sekunden
um sind. Außerdem sollte ein Prozessor nie (!) 5 Sekunden nichts machen,
denn dafür ist er viel zu schade.

von Christoph Kessler (Gast)


Lesenswert?

Ohne Timer gehts auch, mit mehreren Warteschleifen ineinander
16 Bit von 0000 bis wieder 0000 zählen, z.B. mit adiw, brne sind das 3
Takte (?) das wären schon mal Taktfrequenz durch 3*65536,bei 8 MHz also
etwa 1/40sec und dann noch eine 8Bit-Schleife drumherum mit 5*40=200
Durchläufen

von Marco G. (stan)


Lesenswert?

Oder den scheduler von Peter Dannegger benutzen, damit bin ich grad sehr
glücklich :)
http://www.mikrocontroller.net/forum/read-4-49709.html#49709

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.