Witam,
chciałbym w pliku nagłówkowym zapisać stałą #definie i używać jej w pliku c, jednak występuje błąd.
main.c:
//------------------------------------------------------------------------------
#include <avr/io.h>
#include "lib.h"
int main(void)
{
while(1)
{
//TODO:: Please write your application code
}
}
//------------------------------------------------------------------------------
lib.h:
//------------------------------------------------------------------------------
#ifndef LIB_H_
#define LIB_H_
#define PORT PORTA
void funkcja(void);
#endif /* LIB_H_ */
//------------------------------------------------------------------------------
lib.c:
//------------------------------------------------------------------------------
void funkcja(void)
{
PORT = 23;
}
//------------------------------------------------------------------------------
Podczas kompilacji wyskakuje błąd:
Error 1 'PORT' undeclared (first use in this function) C:\Users\xxx\Documents\AVRStudio\AVRGCC2\AVRGCC2\lib.c
Error 2 each undeclared identifier is reported only once for each function it appears in C:\Users\xxx\Documents\AVRStudio\AVRGCC2\AVRGCC2\lib.c
Błąd znika kiedy dodam #include "lib.h" do lib.c, jednak wydaje mi się iż dodawanie własnego pliku nagłówkowego jest dziwne przynajmniej, szczególnie kiedy przeczytałem że #definie powinny znajdywać się w plikach h (http://cpp0x.pl/kursy/Kurs-C++/Dzielenie-kodu-na-kilka-plikow-zrodlowych/310).
Korzystam z Atmel AVR Studio 5 (Version: 5.0.1163)
AVR GCC 8-bit Toolchain
Version: gcc version 4.5.1 (AVR_8_bit_GNU_Toolchain_3.2.3_315)