LCD auf PICDEM2

Gast #2679065
Lesenswert?

Hi!

Ich habe hier ein PICDEM 2 Plus Demo Board und kann leider das LCD 
Display nicht ansteuern. In dem Beispielprogramm sind die Header Lcd.h 
und DisplayMacros.h eingebunden. Diese habe ich auch in meinem Programm 
einbegunden. DisplayMacros.h enthält ein paar nützliche Makros, dürfte 
aber nicht weiter wichtig sein wenn man nicht auf diese vorgefertigeten 
Anzeigen zurückgreifen will.

Der Header Lcd.h enthält aber lediglich die Prototypen der Funktionen, 
und wenn ich nur diesen Header verwende dann funktioniert es nicht. Es 
gibt noch eine andere Datei, die Lcd.c heisst. In dieser sind die 
nötigen Funktionen definiert und auch hier wird wieder Lcd.h 
eingebunden. Ich habe dann diese Datei in Lcd_h.h umbenannt und in mein 
Projekt eingebunden, leider war auch das ohne Erfolg. Ich  hab das 
Display per Software vorher eingeschaltet und auch den 
Kontrasteinstellung verändert.

Muss man da noch irgendwas beachten, wenn man das Display ansteuern 
will?

Danke!
#2679160
Lesenswert?

Du musst die lcd.h und die lcd.c in dein Projektverzeichnis kopieren 
oder den Ordner in den Projektoptionen bei "Include Search Path" 
angeben. Dann in dem c-file in der du die Funktionenn verwenden willst, 
musst du nur die Header-File inkludieren mit #include "lcd.h". Es werden 
dann automatisch die Funktionen der lcd.c verwendet.

Zu dem Thema kannst du dir das hier mal durchlesen:
Beitrag "Verständnisfrage Header/include WinAVR"
Gast #2679380
Lesenswert?

Das hab ich ja alles gemacht. Der Code wird fehlerfrei compiliert wenn 
ich Funktionen wie LCDWriteStr() oder sowas verwende. Nur es passiert 
einfach nichts. Was ich auch komisch finde ist, dass in der Lcd.h Datei 
nur die Prototypen enthalten sind. Aber egal welchen Header ich 
verwende, das Display bleibt aus. Muss man da noch irgendwas anderes 
machen damit es geht? Irgend nen Jumper umsetzen oder sowas?
Gast #2679404
Lesenswert?

#include <p18cxxx.h>
#include <GenericTypeDefs.h>

#include "Lcd.h"
#include "DisplayMacros.h"

#define LED0 0x01
#define LED1 0x02
#define LED2 0x04
#define LED3 0x08
#define OFF  0x00

void high_isr(void);
void low_isr(void);
void initBoard(void);

int i;

void main(void)
{
    initBoard();
    LCDInit();
    LCDClear();
    LCDWriteStr("Hello");

    while(1)
    {

    }

    return;
}

Ich hab mir jetzt mal den oben verlinkten Artikel durchgelesen. Demnach 
ist es nur nötig, ein Header File zu includen, das die Prototypen 
enthält, wenn man das .c File mit den Funktionen ins Makefile hinzfügt. 
Dazu muss ich es ja nur in mein Projekt importieren, oder? Also bei 
MPLAB links in der Liste auf "sourcefiles" rechtklicken und add existing 
item. Wenn ich das so mache, wird das ganze Projekt aber nicht mehr 
kompiliert.

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