delay geht nicht...

Gast #366005
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
_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
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
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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.