www.mikrocontroller.net

Forum: Compiler & IDEs delay geht nicht...


Autor: Tobias Holst (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: uwegw (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobias Holst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Danke, so gehts!

Hätte nicht gedacht, dass die Funktion schon bei ca. 30 ms ausgereizt
ist!

Ciao Tobias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.