Hallo, ich habe einen Atmega8 mit dem Stk500 und möchte mit Taster 1 und 2 Ausgang 1. Schalten und mit Taster 3 und 4 Ausgang 2. einschalten. Das klappt soweit auch gut, nur möchte ich das die Ausgänge nach dem Tasten des Tasters eine Nachlaufzeit von ca. 1 bis 10 Sekunden haben. Warum klappt das mit dem Delay nicht ??? oder wie kann ich das besser machen ? Bitte um Hilfe....
Schreib keine eigenen delay Funktionen! Da deine delay Funktion keinen für den Compiler erkennbaren Zweck hat, ausser Zeit zu verbrutzeln, optimiert sie dir der Compiler heraus. Will man wirklich einen delay haben, dann gibt es in #include <util/delay.h> 2 Funktionen. Eine davon ist _delay_ms Schau aber in das angegebene Header File hinein. Es gibt Obergrenzen für die delays, die mit der Taktfrequenz deines µC zusammenhängen! PS: Solch lange Verzögerungen wird man nicht mittels delay machen. Der Grund: Während der µC die Zeit runterzählt, kann er keine anderen AUfgaben bearbeiten. Für sowas wird man in der Praxis einen Timer nehmen. Ich verstehe aber, dass du irgendwann an irgendeiner Stelle mit dem Lernen der Programmierung anfangen musst und daher nicht alles gleichzeitig lernen kannst.
@ Boris (Gast) >Hallo, ich habe einen Atmega8 mit dem Stk500 und möchte mit Taster 1 und >2 Ausgang 1. Schalten und mit Taster 3 und 4 Ausgang 2. einschalten. >Das klappt soweit auch gut, nur möchte ich das die Ausgänge nach dem >Tasten des Tasters eine Nachlaufzeit von ca. 1 bis 10 Sekunden haben. >Warum klappt das mit dem Delay nicht ??? oder wie kann ich das besser >machen ? 1.) Lass das selbstgestrickte Delay. Dafür gibt es fertige, getestete Funktionen. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h.29 2.) was soll di definition einer funktion INNERHALB von main? Dass ser Compiler dort nciht meckert ist schon ein kleines Wunder. 3.) Formatiere den Code ordentlich (Einrücken), so kann ihn keiner lesen, incl. du. MFG Falk
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.