Forum: Mikrocontroller und Digitale Elektronik LCD code Problem


von Walter (Gast) (Gast)


Lesenswert?

Hallo Leute

Vor kurzem habe ich die AVRGCC version 5.1 installiert.

Ich wollte heute mal wieder an meinem STK500 ein w162B-N3LW LCD Display 
anschliessen. Was an sich kein Problem darstellt.
Als ich den selben Aufbau lt. 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung 
aufbauen wollte bekomme ich dauernt folgende Fehlermeldung:  "'ceil' was 
not declared in this scope"  und 'fabs' was not declared in this scope

diese routinen werden standardmäßig in der delay.h aufgerufen.

ich verstehe nicht warum das bei der GCC Version 5.1 plötzlich so ist 
und bei der alten Version 5.0  aber funktioniert hat.

Das Hauptprogramm schaut lt Anleitung so aus:

#include <avr/io.h>
#include <stdlib.h>
#include "lcd-routines.c"

// Beispiel
int variable = 42;

int main(void)
{
  lcd_init();

  // Ausgabe des Zeichens dessen ASCII-Code gleich dem Variablenwert ist
  // (Im Beispiel entspricht der ASCII-Code 42 dem Zeichen *)
  // http://www.code-knacker.de/ascii.htm
  lcd_data( variable );

  lcd_setcursor( 0, 2 );

  // Ausgabe der Variable als Text in dezimaler Schreibweise
  {
     // ... umwandeln siehe FAQ Artikel bei 
http://www.mikrocontroller.net/Articles/FAQ
     // WinAVR hat eine itoa()-Funktion, das erfordert obiges #include 
<stdlib.h>
     char Buffer[20]; // in diesem {} lokal
     itoa( variable, Buffer, 10 );

     // ... ausgeben
     lcd_string( Buffer );
  }

  while(1)
  {
  }

  return 0;
}


Wer weiss da weiter ???

lg Walter

von zy (Gast)


Lesenswert?

wahrscheinlich verwendest du irgentwo die funktion ceil dafür brauchst 
du aber die math.h und übrigens mach den code mal schöner <stdlib.h> 
mittens im programm einbinden ist nicht sehr schön

von Walter (Gast) (Gast)


Lesenswert?

Danke für die kompetente Hilfe - das war der Fehler.
Den obigen Code habe ich original eingebaut.

Danke nochmal
lg Walter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.