Nachlaufsteuerung mit Taster

Gast #721450
Lesenswert?
• ▲
▼
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....
Angehängte Dateien:
#721471
Lesenswert?
• ▲
▼
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.
#721478
Lesenswert?
• ▲
▼
@ 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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.