Forum: Mikrocontroller und Digitale Elektronik LCD auf PICDEM2


von Armin (Gast)


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!

von Martin S. (drunkenmunky)


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"

von Armin (Gast)


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?

von Andreas G. (beastyk)


Lesenswert?

Aber das Display hast du schon initialisiert, oder?
Poste doch einfach mal deinen Code hier rein, dann sehen die Leute eher 
wo der Fehler liegen könnte!

Gruß
Andi

von Armin (Gast)


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.

von Armin (Gast)


Lesenswert?

Nachtrag:

Wenn ich die Lcd.c Datei unter Header Files hinzufüge, wird es wieder 
kompiliert, aber das Display bleibt trotzdem aus.

von Armin (Gast)


Lesenswert?

Hat noch jemand vielleicht ne Idee woran das liegen könnte? Kann es sein 
dass die LCDInit() routine für ein anderes Board ist? Es gibt ja 
verschiedene Versionen von dem PICDEM.

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.