delay geht nicht...

Gast #366005
Lesenswert?
• ▲
▼
Hi

Ich mache gerade meine ersten Versuche mit den Atmels und der
C-Programmierung.

Hier mal mein Testcode:

#include <avr/io.h>
#include <stdint.h>
#include <util/delay.h>

int main(void)
{
DDRA = 0xff;
PORTA = 0xff;
DDRB = 0xff;
PORTB = 0xff;
DDRC = 0xff;
PORTC = 0xff;
DDRD = 0xff;
PORTD = 0xff;
_delay_ms(1000);
PORTA=0;
PORTB=0;
PORTC=0;
PORTD=0;
_delay_ms(1000);
PORTA=0xff;
PORTB=0xff;
PORTC=0xff;
PORTD=0xff;
_delay_ms(1000);
PORTA=0;
PORTB=0;
PORTC=0;
PORTD=0;
return 1;
}

Das ganze ergibt aber keine Sekundenpausen, sondern nur eine sehr kurze
Unterbrechung an den Ausgängen. Zum Thema F_CPU siehe Dateianhang. Was
mach ich noch falsch?

Ciao Tobias
Angehängte Dateien:
Gast #366006
Lesenswert?
• ▲
▼
_delay_ms() kann nur ziemlich kurze Zeiten verzögern. Den genauen Wert
schlag mal selber in der lib-Doku nach. Wenn du mehr Zeit haben willst,
schreib ne Funktion, die _delay_ms in ner Schleife mehrmals aufruft...
Gast #366007
Lesenswert?
• ▲
▼
Damit hatte ich (auch anfänger) auch schon öfter Probleme. Das Größte
was anscheinend mit einer einfachen Delay Funktion möglich ist, sind
100ms. Mehr habe ich (messtechnisch nachgeschaut) auch noch nicht
hinbekommen.

Gruß
Thomas
Gast #366008
Lesenswert?
• ▲
▼
Wieviel man mit den _delay-Funktionen maximal verzögern kann, hängt von
der Taktfrequenz ab. Bei _delay_us() sind es 768µs/(f_CPU in MHz), bei
_delay_ms() 262,14ms/(f_CPU in MHz). Steht in der Header-Datei delay.h.

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.