Unterstützung bei Warteschleife (delay.h)

OP #1525290
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
Gast #1525299
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).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.