mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Unterstützung bei Warteschleife (delay.h)


Autor: Andreas V. (wicky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kann mir einmal bitte jemand folgendes erklären:

Ich habe ein ganz einfaches Blinken einer LED simuliert.

(STK 600, Atmel2650, mit 16MHZ)

#include<avr/io.h>

//#ifndef F_CPU
//#define F_CPU 1600000000UL
//#endif

#include<util/delay.h>



int main(void){

  DDRB = (1<<PB0);


  while(1){

  PORTB^= (1<<PB0);
  _delay_ms(1);


  }
  return 0;
}

beim compilieren erhalte ich folgenden Hinweis:
c:/winavr-20090313/lib/gcc/../../avr/include/util/delay.h:85:3: warning: 
#warning "F_CPU not defined for <util/delay.h>"


in der delay.h habe ich aber die 16MHZeingetragen:
#ifndef F_CPU
/* prevent compiler error by supplying a default */
# warning "F_CPU not defined for <util/delay.h>"
# define F_CPU 1000000UL
# define F_CPU 16000000UL
# define F_C
#endif

warum ist dies falsch, den wenn ich in dem c.file die Definition 
vornehme, wie oben (Auskommentiert) dann funktioniert es.

Und warum erhalte ich beim compilieren zuerst den Wahrnhinweis und beim 
erneuten compilieren ohne das etwas geändert wurde gibt es keinen 
Wahrnhinweis mehr?

Andreas

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas V. schrieb:
> warum ist dies falsch
Weil du als Endbenutzer in der <util/delay.h> nichts zu suchen oder zu 
verändern hast. (-> AVRlibc-Anleitung)

> den wenn ich in dem c.file die Definition
> vornehme, wie oben (Auskommentiert) dann funktioniert es.
Dann ist es auch richtig.

> Und warum erhalte ich beim compilieren zuerst den Wahrnhinweis und beim
> erneuten compilieren ohne das etwas geändert wurde gibt es keinen
> Wahrnhinweis mehr?
Weil dein Build-System beim zweien Bauen feststellt, dass das Projekt 
(also deine Objekte) schon auf dem neuesten Stand sind und es nichts zu 
tun gibt. (-> Make-Anleitung)

Das heißt im einfachsten Fall, dass der Übersetzer nur dann ausgeführt 
wird, wenn irgendeine Quelltextdatei neuer ist, als die Programmdatei 
(d.h., es wurde seit dem letzten Übersetzen irgendetwas verändert).

Autor: Andreas V. (wicky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die schnelle und ausführliche Hilfe!!!

Schönen Abend

Andreas

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.