www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C18 Compiler XLCD.h


Autor: Gebert M. (gebert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morgens

Mein Problem --> die Änderungen in der xlcd.h bleiben unwirksam.

Ich habe die xlcd.h angepasst auf PORTD und 4Bit lower nibble. Den 
Header gespeichert und compiliert...

Setze ich händisch zb. den E_PIN = 1, so funktioniert dies. Aber über 
die Funktionen zb. openxlcd(....) wird immer noch der PORTB 
angesprochen.

Weiss jemand in welchem Detail der Hund versteckt ist??
(Bin noch Anfänger mit MPLAB und C18) :-)

MfG MICHI

Autor: Gebert M. (gebert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So etwas umständliches und schlecht dokumentiertes!

Ich schreib das Zeug selber!!

Autor: Sascha Focus (sascha_focus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daran gedacht??

extern void DelayFor18TCY(void);
extern void DelayPORXLCD(void);
extern void DelayXLCD(void);

Diese mußt du selber definieren.

Gruß Sascha

PS. bei mir funktioniert es

Autor: Gebert M. (gebert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na logo!

Ich konnte einfach nicht richtig recompilieren und in die LIB einbinden.
Hatte trotz Veränderungen die Leitungen immer auf PortB.

Ich habe die benötigen Funktionen übernommen und arbeite jetzt ohne 
diesen lästigen Header. :-)

Trotzdem Danke

Gruss Misch

Autor: Dida N. (quader)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube ich hatte da ähnliche Probleme.
Wenn ich mich nicht täusche, musst du jeweils die Librarys noch 
"aktualisieren".

Dies machst du über die zuständige Bat-Datei. Mit folgender sollten 
eigentlich alle neu gebildet werden [...]\mcc18\src\makeall.bat

Ansonsten kannst du auch die C-Funktionen kopieren und dir damit deine 
eigene Source-Datei machen. Du findest alle Funktionen in diesem Ordner:
[...]\mcc18\src\traditional\pmc\XLCD\ (Kenne den Unterschied zwischen 
tradtitional und extended gerade nicht, die XLCD-Funktionen 
unterscheiden sich glaube nicht).

Dann kannst du dir in den Projekten selbst die C- und Header-Datei 
hinzufügen und hast absolute Transparenz ;)

// Mhhh... da kam ich wohl zu spät ;)

Autor: Juan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,


start, ausführen, cmd.

in der Komanozeile in den Ordner:

c:|MCC18/src>dir

und man sieht die unterschiedlichen bat. dateien.

da tipt man make_device_t P18FXYXY    (oder wie auch immer die funktion 
heisst)

und fertig ist es.

t steht für traditional.
P18FXYXY ist dein uController.
Sonst macht er alles für alle controller und es dauert lange...

Gruß,

J

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo zusammen.
ich habe ebenfalls probleme mit der lcd-ansteuerung.
bis jetzt habe ich den PIC 16F873A eingesetzt und es hat immer geklappt.
neu verwende ich den PIC 18LF4620. ich werde in 3 monaten ein projekt 
mit diesem realisieren.
desshalb bin ich im momment daran, ihn ein wenig kennen zu lernen und 
auszutesten. somit auch die ansteuerung eines lcd moduls.

als erstes, bin ich mir schon einmal im unklaren, welchen treiber ich 
verwenden soll. da gibt es den xlcd vom c18-compiler, den xlcd von mplab 
und und und...

welchen empfehlt ihr.
ich habe es bis jetzt mit dem vom c18 erfolglos probiert.

Meine Pinbelegung:

DB7  -  RC7
DB6  -  RC6
DB5  -  RC5
DB4  -  RC4
E    -  RC3
RW   -  gnd
RS   -  RC0

Ich habe es im header xlcd.h auf meine pins geändert..
wie soll ich das am besten tun? die dateien in den aktuellen 
verzeichnissen lassen und da ändern, oder sie in den projektordner 
nehmen?

funktionen C:\Programme\MCC18_StudentEdition\src\pmc_common\XLCD
header     C:\Programme\MCC18_StudentEdition\h

Ich bin völlig irritiert wo mein fehler liegt...

Autor: Gebert M. (gebert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo daniel

bei mir ist es zwar schon ein weilchen her...

den xlcd header abändern und neu kompilieren reicht in der regel nicht.
man müsste die entsprechende library des prozessors mit dem geänderten 
header frisch kompilieren. Dies habe ich leider nie hinbekommen.

falls du die pinbelegung nicht auf die vorgabe des headers ändern 
willst, kannst du die funktionen, welche der header verwendet (stehlen), 
anpassen und in dein programm einbinden.

mfg mischa

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo gerbert.
merci für die hilfe.
ich bin jetzt ein wenig weiter.
die änderungen im header werden beachtet. ich kann belibige definitionen 
im xlcd.h programmieren und sie in meinen funktionen verwenden. Aber:
wenn ich die initialisierungsfunktion aufrufe (openxlcd.c) blieb er 
"hängen". Mit den .bat dateien, habe ich wohl alles versaut^^ nach 
reinstallation des compilers ist mein programm auf dem pic schön 
gelaufen. jedoch wurde die funktion openxlcd.c nicht ausgeführt, sondern 
irgendwie übersprungen. es werden alle befehle vor und nach des 
funktionsaufrufes ausgeführt. Jedoch wird die funktion compiliert --> 
wenn ich fehler in openxlcd.c schreibe wird dies auch angezeigt.

gruss
Daniel

Autor: Sascha Focus (sascha_focus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Daniel,

mit dem Microchip Application Maestro kannst du dir einen Treiber für 
LCD erstellen. Einzigst die delay's muß du selbst schreiben.

Gruß Sascha

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das verstehe ich jetzt nicht ganz.
Treiber?
Sind nicht alle C-files oder das C-File + das Header-file der Treiber?

Gruss Daniel

Autor: Sascha Focus (sascha_focus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel wrote:
> Das verstehe ich jetzt nicht ganz.
> Treiber?
> Sind nicht alle C-files oder das C-File + das Header-file der Treiber?
>
> Gruss Daniel


Richtig :)

und diese Files generiert Microchip Application Maestro anhand deiner 
Einstellungen, wie Port usw.

Gruß Sascha

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.