Forum: Compiler & IDEs Lauflicht: Delay-Problem (16 Mhz, Mega32)


von Matze (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen!

Mein Problem dreht sich bei dem simples lauflicht um die Delay-Zeit. Der 
Code (siehe Anhang) scheint okay zu sein, und lässt sich mit dem AVR 
Studio problemlos simulieren. Sobald das Programm auf dem uC ist, ist 
jedoch keine Wartezeit mehr zu erkennen. Es sind sofort alle Ausgänge 
auf PortA aktiv. Ich verwende ein externes 16 Mhz Quarz. Die Fuse-Bits 
müssten eingentlich auch richtig gesetzt sein, ich habe sie im Anhang 
ebenfalls hinzugefügt.

Wo liegt das "zeitliche Problem"?

Vielen Dank schon mal im Vorraus für Eure Hilfe.
Gruß matze

von Matze (Gast)


Lesenswert?

Jetzt ist mir noch was eingefallen. Kann es sein, dass man mit der 
Delay-Funktion gar nicht so länge 'Zeiten' verzögern kann? In meinem 
Fall waren das ja 1000ms.

von Matze (Gast)


Lesenswert?

Ich habs mittlerweile selbst hinbekommen. Es lag wohl an der zu groß 
gewählten delay-Zeit. Ich hab jetzt eine Schleife gebastelt, in der die 
delay-Funktion öfters aufgerufen wird. Ist zwar schlechter Code, aber 
für den Zweck tuts das.

von Rolf Magnus (Gast)


Lesenswert?

Hättest du die Doku gelesen, dann wäre das gleich klar gewesen. Da 
stehen die maximalen Delay-Zeiten nämlich drin.

von Peter D. (peda)


Lesenswert?

Ich hab mich auch schon oft darüber geärgert, daß C zwar konstante 
Ausdrücke mit float Zahlen ausrechnen kann, aber nicht für bedingte 
Compilierung auswerten kann.

Das Leben könnte viel leichter sein, wenn man beim Über- oder 
Unterschreiten von Werten mittels #error eine Fehlermeldung ausgeben 
könnte.


Peter

von Rolf Magnus (Gast)


Lesenswert?

Ich hab hier noch irgendwo eine gcc-Version auf der Platte rumliegen, 
die ich so verändert habe, daß sie warnt, wenn der Parameter keine 
Compilezeit-Konstante ist. Eine Bereichsüberprüfung wäre da auch 
möglich. Ich hab mich da nur nie weiter darum gekümmert.

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.