Forum: Mikrocontroller und Digitale Elektronik ATMega1284P + EA-DOGL128 mit Library von Jan M.


von A.C. (Gast)


Lesenswert?

Hallo zusammen,

ich bin Anfänger was C angeht (bin seit 2 Wochen dabei) und muss das 
LC-Display EA-GOGL128 für unser Technikerprojekt ansteuern. Leider 
stosse ich mit meinem geringen Wissen an der Library von Jan 
M.(Beitrag "Library für EA-DOGM Grafikdisplays inkl. Font-Generator") hier aus dem Forum an 
meine Grenzen.

Den ATMega1284P habe ich wie folgt mit dem LC-Display verbunden:

MOSI (PB5) -> SI
SCK (PB7) -> SCL
A0 (PB0) -> A0
PB1 -> RST
SS (PB4) -> CS

In der Library habe ich folgendes eingefügt bzw. geändert:

Dogm-graphic.h:
#define DISPLAY_TYPE  128
#define LCD_USE_CHIPSELECT  1
#define LCD_USE_BACKLIGHT   0

#define PORT_A0  PORTB
#define DDR_A0   DDRB
#define PIN_A0   0

#define PORT_RST PORTB
#define DDR_RST  DDRB
#define PIN_RST  1

#if LCD_USE_CHIPSELECT == 1
  #define PORT_CS  PORTB
  #define DDR_CS   DDRB
  #define PIN_CS   PORTB4
#endif

#define SPI_SS          PB4
#define SPI_MOSI        PB5
#define SPI_SCK         PB7

Dogm-graphic.c:

Die Init funktion aus dem beispiel übernommen:

void init_spi_lcd() {

       DDRB  = (1 << SPI_MOSI) | (1 << SPI_SCK) | (1 << SPI_SS)| (1 << 
PB0);

       SPCR = 0 << SPIE | 1 << SPE | 0 << DORD | 1 << MSTR | 1 << CPOL
       | 1 << CPHA | 0 << SPR1 | 0 << SPR0;
       SPSR = 1 << SPI2X;
       SPDR = LCD_NO_OP; //Do not use 0 here, only LCD_NOP is allowed!
}

Im Solution Explorer die Dateien dogm-graphic.c und .h sowie font.c und 
.h eingefügt.

Die main.c sieht wie folgt aus:

#define F_CPU 8000000UL
#include <util/delay.h>
#include <avr/io.h>
#include "dogm-graphic.h"



int main(void)
{

       //lcd_init();
       lcd_init();

    while (1)
    {
       lcd_put_string_P(FONT_FIXED_8, NORMAL, PSTR("Hallo Welt"));
    }
}


Das ganze programmiere ich im Atmel Studio 7 und bekomme leider einen 
compilierfehler:
Undefined reference to ´font_fixed_8px`

Zu der Library gehört noch der Ordner Fonts, den ich im Projektordner 
abgelegt habe, doch ich weiß nicht genau ob ich diesen noch in dem 
Projekt implementieren muss?

Vielleicht kann mir jemand etwas behilflich sein?

Vielen Dank im vorraus.

von Karl M. (Gast)


Lesenswert?

Hi A.C.,

na mit 2 Wochen, wirst Du noch ca. 2 Jahre lernen C und dann C++ müssen.

Oder kannst Du z.B. Russisch schon nach 2 Wochen Sprechen und Schreiben 
?

von A.C. (Gast)


Lesenswert?

Tja, dessen bin ich mir bewusst...das hilft mir aber nicht weiter. Ich 
brauche eben Hilfe, um das irgendwie stemmen zu können. Ich bringe es 
mir anhand eines Buches, Google und diesen Forums bei. Aber rum zu 
heulen bringt mich nicht weiter, sondern versuchen es mit Hilfe anderer 
irgendwie hin zu kriegen.
Übringens hat unser 3 köpfiges Projektteam noch ca. 5-6 Wochen Zeit das 
ganze Projekt mit Hardware aufzubauen sowie mit einem Controller ein 
Messsignal, Frequenz, Offset-Spannung u.ä. auszuwerten :)

Also was meint der Compiler von Atmel studio mit der Fehlermeldung:

Undefined reference to ´font_fixed_8px` ?

Muss ich den Unterordner Fonts irgendwie gesondert in das Projekt 
einfügen?

von holger (Gast)


Lesenswert?

>Also was meint der Compiler von Atmel studio mit der Fehlermeldung:
>
>Undefined reference to ´font_fixed_8px` ?

Das bedeutet font_fixed_8px.c wurde nicht vom Compiler
übersetzt zu font_fixed_8px.o übersetzt oder die übersetzte
font_fixed_8px.o wurde vom Linker nicht eingebunden.

von Gerhard G. (xmega)


Lesenswert?

Hallo,

Du solltest erst die Font's bekannt geben.


lcd_init();

lcd_set_font(FONT_FIXED_8, NORMAL);

...



Gruß G.G.

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.