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

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.