undefined reference to

Gast #2349490
Lesenswert?

Hi,
ich bin vor kurzem auf das AVR-Studio 5 umgestiegen und habe nun 
folgendes Problem "ERROR undefined reference to 'uart0init'".
Im AVR-Studio 4 funktionierte es mit einem externen Makefile.
Alle Dateien befinden sich im gleichen Verzeichnis und ich habe sie im 
Studio5 im Solution Explorer hinzugefügt.

Hat jemand eine Idee woran es liegen könnte.

Umgestiegen weil ATmega88PA vom Studio 4 nicht unterstützt wird nur asm.

Gruß
Jörg
Gast #2349513
Lesenswert?

Ja, die Funktion wird benutzt.
Aufbau:
1
//uart0.h
2
void uart0init(uint32_t baudrate, uint8_t bits, parityMode parity, uint8_t stopbits);
1
//uart0.c
2
void uart0init(uint32_t baudrate, uint8_t bits, parityMode parity, uint8_t stopbits)
3
{
4
  //implementation
5
}
1
#include "uart0.h"
2
int main( void )
3
{  
4
  uart0init(9600, 8, NONE_PARITY, 1);
5
}

obj files werden erstellt.
Im Makfile steht die uart0.c auch drin.
#2349554
Lesenswert?

Christian H. schrieb:
> In deiner .h Datei deklarierst du schon Variablennamen in dem
> Funktionsheader (nur Dateitypen!)? Ist die Funktion dann nicht doppelt
> deklariert? Versuch das mal ganz schnell zu ändern.

Sorry, aber das ist Unsinn.

Jörg schrieb:
> Im Makfile steht die uart0.c auch drin.

Und hast du das Studio5 auch so eingestellt, dass das externe Makefile 
verwendet wird?

Jörg schrieb:
> Umgestiegen weil ATmega88PA vom Studio 4 nicht unterstützt wird nur asm.

Wie bitte?
Gast #2349848
Lesenswert?

Hi,
ich denke ich hab es gefunden.
uart.c
1
#define UART0
2

3
#if defined(UART)
4
void uart0init(uint32_t baudrate, uint8_t bits, parityMode parity, uint8_t stopbits)
5
{
6
  //implementation
7
}
8
#endif

kein wunder das die nicht gefunden wurde.

Jetzt bekomme ich den Fehler F_CPU nicht definiert. Gibt es im Studio 5 
eine möglichkeit dies zu setzten wie im 4er?
oder
#define F_CPU 8000000UL


Danke für die Hilfe.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren