www.mikrocontroller.net

Forum: GCC sed1335 AVR Studio Fehler


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Andreas S. (andreas_s64)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo habe folgendes Problem:
bei dem Quellcode des sed1335 kommt der Fehler ../sed1335.c:14: 
undefined reference to `GLCD_InitializePorts'

Woran liegt das?
//-------------------------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------------------------
#include "sed1335.h"
#include <util/delay.h>

extern void GLCD_InitializePorts(void);

//-------------------------------------------------------------------------------------------------
// Funkcja inicjalizacji wyœwietlacza
//-------------------------------------------------------------------------------------------------
void GLCD_Initialize(void)
{
GLCD_InitializePorts();

GLCD_WriteCommand(SED1335_SYSTEM_SET); 
GLCD_WriteData(SED1335_SYS_P1);  
GLCD_WriteData(SED1335_SYS_P2);    
GLCD_WriteData(SED1335_FY);    
GLCD_WriteData(SED1335_CR);    
GLCD_WriteData(SED1335_TCR);  
GLCD_WriteData(SED1335_LF);    
GLCD_WriteData(SED1335_APL);  
GLCD_WriteData(SED1335_APH);  
  
GLCD_WriteCommand(SED1335_SCROLL);   
GLCD_WriteData(SED1335_SAD1L);    
GLCD_WriteData(SED1335_SAD1H);    
GLCD_WriteData(SED1335_SL1);    
GLCD_WriteData(SED1335_SAD2L);    
GLCD_WriteData(SED1335_SAD2H);    
GLCD_WriteData(SED1335_SL2);    
GLCD_WriteData(SED1335_SAD3L);    
GLCD_WriteData(SED1335_SAD3H);     
GLCD_WriteData(SED1335_SAD4L);    
GLCD_WriteData(SED1335_SAD4H);    
  
GLCD_WriteCommand(SED1335_CSRFORM);
GLCD_WriteData(SED1335_CRX);    
GLCD_WriteData(SED1335_CSRF_P2);    
  
GLCD_WriteCommand(SED1335_CGRAM_ADR);       
GLCD_WriteData(SED1335_SAGL);      
GLCD_WriteData(SED1335_SAGH);        
  
GLCD_WriteCommand(SED1335_CSRDIR_R);      

GLCD_WriteCommand(SED1335_HDOT_SCR);       
GLCD_WriteData(SED1335_SCRD);      
  
GLCD_WriteCommand(SED1335_OVLAY);            
GLCD_WriteData(SED1335_OVLAY_P1);      
      
GLCD_WriteCommand(SED1335_DISP_ON);
GLCD_WriteData(SED1335_FLASH);
}
//-------------------------------------------------------------------------------------------------
// Funkcja zapalaj¹ca piksel
//-------------------------------------------------------------------------------------------------
void GLCD_SetPixel(unsigned int x,unsigned int y, int color)
{
unsigned char tmp = 0;
unsigned int address = SED1335_GRAPHICSTART + (40 * y) + (x/8); 
GLCD_SetCursorAddress(address);

GLCD_WriteCommand(SED1335_MREAD);
tmp = GLCD_ReadData();

if(color)
  tmp |= (1 << (SED1335_FX - (x % 8)));
else
  tmp &= ~(1 << (SED1335_FX - (x % 8)));

GLCD_SetCursorAddress(address);
GLCD_WriteCommand(SED1335_MWRITE);
GLCD_WriteData(tmp);
}
//-------------------------------------------------------------------------------------------------
// Funkcja wyswietlajaca tekst
//-------------------------------------------------------------------------------------------------
void GLCD_WriteText(char * tekst)
{
GLCD_WriteCommand(SED1335_MWRITE);
while(*tekst)
  GLCD_WriteData(*tekst++);
}
//-------------------------------------------------------------------------------------------------
// Funkcja wyœwietlaj¹ca tekst z pamiêci programu (AVR)
//-------------------------------------------------------------------------------------------------
void GLCD_WriteTextP(char * tekst)
{
GLCD_WriteCommand(SED1335_MWRITE);
while(GLCD_ReadByteFromROMMemory(tekst))
  GLCD_WriteData(GLCD_ReadByteFromROMMemory(tekst++));
}
//-------------------------------------------------------------------------------------------------
// Funkcja ustawiaj¹ca adres kursora
//-------------------------------------------------------------------------------------------------
void GLCD_SetCursorAddress(unsigned int address)
{
GLCD_WriteCommand(SED1335_CSRW);
GLCD_WriteData((unsigned char)(address & 0xFF));
GLCD_WriteData((unsigned char)(address >> 8));
}
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
void GLCD_TextGoTo(unsigned char x, unsigned char y)
{
GLCD_SetCursorAddress((y * 40) + x);
}
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
void GLCD_GraphicGoTo(unsigned int x, unsigned int y)
{
GLCD_SetCursorAddress(SED1335_GRAPHICSTART + (y * 40) + x/8);
}
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
void GLCD_ClearText(void)
{
int i;
GLCD_TextGoTo(0,0);
GLCD_WriteCommand(SED1335_MWRITE);
for(i = 0; i < 1200; i++)
  GLCD_WriteData(' ');
}
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
void GLCD_ClearGraphic(void)
{
unsigned int i;
GLCD_SetCursorAddress(SED1335_GRAPHICSTART);
GLCD_WriteCommand(SED1335_MWRITE);
for(i = 0; i < (40 * 240); i++)
  GLCD_WriteData(0x00);
}
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------
void GLCD_Bitmap(char * bmp, int x, int y, int width, int height)
{
unsigned int i, j;
for(i = 0; i < height ; i++)
  {
  GLCD_GraphicGoTo(x, y+i);
  GLCD_WriteCommand(SED1335_MWRITE);
  for(j = 0; j < width/8; j++)
    GLCD_WriteData(GLCD_ReadByteFromROMMemory(bmp+j+(40*i)));
  }
}
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------


Autor: Andreas S. (andreas_s64)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Kennt sich damit wirklich keiner aus? Ich habe die sed1335 library von 
der seite http://en.radzio.dxp.pl/sed1335/ heruntergeladen und in avr 
studio 4 eingebunden und dann kommt dieser Fehler raus.

Autor: NurEinGast (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Der Compiler sagt ja :

undefined reference to `GLCD_InitializePorts'

Also findet er die GLCD_InitializePorts nicht.

Schau mal in die entsprechende Datei für Deinen Controller.
Welche das ist kann ich nicht sagen, weil Du vergessen hast uns das 
mitzuteilen.
Zumindest in der Datei für den AVR hat der Hersteller der Lib die 
Finktion nicht GLCD_InitializePorts sonder als GLCD_InitPorts genannt.
Das müsste man umbenennen.

Autor: Oliver (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Andreas S. schrieb:
> Kennt sich damit wirklich keiner aus?

Derjenige, der die Software geschrieben hat.

Deine Fehlermeldung besagt, daß in deine Programm zwar 
GLCD_InitializePorts() aufgerufen wird, es die Funktion aber nirgends 
gibt. Warum, wissen nur du und ie Götter. Vielleicht hast du nicht alle 
benötigten Programmteile installert, vielleicht musst du die Funktion, 
passend zu deiner Hardware, selber schreiben, keine Ahnung.

Mit an Sicherheit grenzender Wahrscheinlichkeit steht aber dazu was in 
der Doku zu der lib. Also: RTFM.

Oliver

Autor: Frank W. (frankw) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Na ja - das wurde im Posting eins weiter oben bereits - sogar schon 
etwas genauer - beantwortet.
Aber wahrscheilich hat der Threadersteller eh keine Lust mehr. Hat sich 
zumindest nicht mehr gemeldet.

Autor: Andreas S. (andreas_s64)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Danke für die antworten. habe die Funktion in GLCD_InitializePorts 
umbenannt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net