Forum: Mikrocontroller und Digitale Elektronik Zeitproblem mit AVR


von Trunes (Gast)


Lesenswert?

Hallo,

Ich habe mit meinen µC immer das selbe Problem,
egal ob Mega16 oder Tiny2313.
Immer wenn ich zB: eine LED
in einer gewissen Zeit ein und wider ausschalten will,
dann funktioniert dass nicht in der richtigen Zeit, sondern
viel zu Schnell. Wenn ich so eine sek. warten will, sehe ich die
LED flimmern.

Ich habe leider keine Ahnung was ich falsch mache.

von Jack B. (jackbraun)


Lesenswert?

>Ich habe leider keine Ahnung was ich falsch mache.

Dein Programm ist fehlerhaft.

von Trunes (Gast)


Lesenswert?

Ich benutze immer den Befehl _delay_ms(1000);
Nun müsste das Programm für exakt eine Sekunde stehen bleiben.
Bei mir wartet das Programm aber höchstens eine ms.

von ExUndHopp (Gast)


Lesenswert?

>Dein Programm ist fehlerhaft.

Ich glaube auch, dass das der Grund ist.

von Franz-Rainer (Gast)


Lesenswert?

Mit was Prog. du?
Beim GCC
The maximal possible delay is 768 us / F_CPU in MHz.
The maximal possible delay is 262.14 ms / F_CPU in MHz.

von Frank E. (erdi-soft)


Lesenswert?

Siehe delay.h:

The maximal possible delay is 262.14 ms / F_CPU in MHz.

von Elektro G. (e_g)


Lesenswert?

schau mal in der avr-libc-Doku

_delay_ms() kann nicht beliebig groß sein (ist begrenzt)!

von Trunes (Gast)


Lesenswert?

Tut mir leid aber ich verstehe nicht ganz?!?

Meinst du das Programm funktioniert?!?

von Franz-Rainer (Gast)


Lesenswert?

Wie hoch ist die Taktfrequenz?

von Trunes (Gast)


Lesenswert?

Dh: ich sollte einen anderen Befehl als delay verwenden,
aber ich kenne leider keinen.

von Trunes (Gast)


Lesenswert?

12 Mhz

von Franz-Rainer (Gast)


Lesenswert?

Max Zeit währe 21,845ms

von Trunes (Gast)


Lesenswert?

Das sieht dann so aus.

#include <util/delay.h>
.
.
.
"Programm"
_delay_ms(1000);
.
.
.

von Trunes (Gast)


Lesenswert?

Deswegen kann das nicht funktionieren!

Aber gibt es denn auch einen anderen Befehl?

von Franz-Rainer (Gast)


Lesenswert?

for (x=0;x<=46;x++)
{
_delay_ms(21);
}

von Franz-Rainer (Gast)


Lesenswert?

for (x=0;x<=50;x++)
{
_delay_ms(20);
}
CA.1S

von Trunes (Gast)


Lesenswert?

Ahhh!

Super Danke!

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.