Forum: Mikrocontroller und Digitale Elektronik define F_CPU ergibt warning


von mil (Gast)


Lesenswert?

hallo

ich erhalte immer folgendes warning :
#warning "F_CPU not defined for <util/delay.h>"

aufbau der files  :

main.c
------
#define SPEED 1000000UL

#ifndef F_CPU
#define F_CPU SPEED
#endif

#define FOSC SPEED
#define BAUD 1200
#define MYUBRR FOSC/16/BAUD-1

#include <avr/io.h>
#include "header.h"
...

header.h
--------
#ifndef AVRTOOLS_H
#define AVRTOOLS_H
#include <inttypes.h>
void waitms(uint16_t y);
#endif


header.c
--------
#include <avr/io.h>
#include "header.h"

#include <util/delay.h>      /* busy-wait delay loops */

void waitms(uint16_t y) {
....


F_CPU wird doch vor dem include von header.h definiert. woran kann das
liegen?

besten dank

: Gesperrt durch Moderator
von Bjoern M. (salival)


Lesenswert?

Das Kompilieren von "header.c" hat nichts mit der "main.c" zu tun.
Beide werden unabhaengig kompiliert und spaeter zusammengelinkt.
Deswegen ist F_CPU nicht definiert. Am besten macht man das im
Makefile. Guck dir mal die Version an, die "mfile" ausspuckt:
http://www.sax.de/~joerg/mfile/

Da sollte drinstehen, wie man es "richtig" macht.

gruss, bjoern.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.