Problem beim Compilieren mit "uart_puts()"

Gast #2176003
Lesenswert?

Hallo Leute,

versuch mein Projekt zu kompilieren, was leider nicht funktioniert.
Das Problem ist bei "uart_puts( s );" und lautet "undefined reference 
to..."

kann mir da jemand helfen?

Hier der Code der C-Datei
(Teil eines Gesamtprojektes)

-------------
#include "../common/common.h"
#include "sendData.h"
#include <avr/io.h>
#include <stdlib.h>
#include "uart.h"

void init_Send(){
  DDRD |= (1 << PD1); //setze PD1 als Ausgang
}


void sendData(unsigned int data){

  /*warte auf leeren Sendebuffer*/
  while(!(UCSR0A & (1<<UDRE0))){
  //USART Control and Register Status A & USART Data Register Empty
  }

  char s[17];
  uint16_t i = data + 32256;

  itoa( i, s, 10 );
  uart_puts( s );
}
-------------

die headder uart.h sieht so aus:
-------------
#ifndef UART_H
#define UART_H
#include "../common/common.h"

void UART_Init(uint16_t BaudRate);

#endif
-------------

Danke im Vorraus

Peter
Gast #2176015
Lesenswert?

Warnung oder Fehler?

W: Kommt vom Compiler, irgendwo fehlt ein Header/Funktionsprototyp.
F: Kommt vom Linker, passende "Bibliothek" (genaues Wort kenne ich 
nicht) zum Projekt hinzufügen (im Makefile oder irgendwo in der IDE)
Gast #2176024
Lesenswert?

Peter schrieb:
> uart_puts() is doch ne Systemfunktion,
> die muss doch von mir nicht implementiert werden, oder?

falsch, denn wie sie allgemein gültig währe dann müssten man dort auch 
noch die Schnittstelle angeben können über die gesendet werden soll. Es 
können ja auch mehre UARTS vorhanden sein.
Gast #2176852
Lesenswert?

Peter schrieb:
> noch viel Blöder gehts ja net.

Ähem, manchmal ist es tatsächlich nicht verkehrt, das Rad nicht immer 
wieder neu zu erfinden.

Fertige uart_puts und uart_putc für AVRs gibt es zu Hauf im Netz, daran 
kann man sich gut orientieren.

Oliver
P.S. Du hast mich aber schon richtig verstanden...

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