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!
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"
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?
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
#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.
Nachtrag: Wenn ich die Lcd.c Datei unter Header Files hinzufüge, wird es wieder kompiliert, aber das Display bleibt trotzdem aus.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.