LCD an PIC18F442
Dienstag, 22. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  CCS Compiler  |  LCD (CCS)  |  LCD an PIC18F442 « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: LCD an PIC18F442  (Gelesen 4541 mal)
 
Buddy
Newbie
*
Offline Offline

Beiträge: 5


Profil anzeigen
« am: August 26, 2007, 00:07:32 »

Hallo,

versuche Verzweifelt das LCD an meinem PIC zum laufen zubringen. Es wird jedoch nur die erste und dritte Zeile schwarz angezeigt.
Als Grundlage für meine Arbeit dient das 2 Beispiel von Fernando.
init stimmt meines erachtens mit den Datenblatt angaben überein.
Datenblatt, Projekt und Pinbelegung liegen in der Zip bei.
Hardware mäßig sollte alles stimmen.

Schonmal Danke

Buddy

* lcd0815.zip (335.42 KB - runtergeladen 330 Mal.)
Gespeichert
Schoasch
Sr. Member
****
Offline Offline

Beiträge: 343



Profil anzeigen
« Antworten #1 am: August 26, 2007, 07:40:30 »

Hi

Hast du schon mal mit dem Oszi geschaut, ob sich an den Portbins etwas tut?


Zitat
#byte portb=6
Wie kommst du auf die Adresse 6 für das Port B? Laut Datenblatt ist die Adresse 0xF81.

mfg Schoasch
Gespeichert
Buddy
Newbie
*
Offline Offline

Beiträge: 5


Profil anzeigen
« Antworten #2 am: August 26, 2007, 13:47:21 »


Hast du schon mal mit dem Oszi geschaut, ob sich an den Portbins etwas tut?
Zitat
ne, hab aber leider auch kein Oszi

Wie kommst du auf die Adresse 6 für das Port B? Laut Datenblatt ist die Adresse 0xF81.

oh, hast recht Zwinkernd hab ich übersehen, muss aber in meinem fall 0xF82 sein, da es ja auch Port C liegt, ist, die struktur heißt ja nur portb weils aus fernandos Beispiel raus ist.

So habs geändert und jetz zeigt das Display garnichts mehr an Zwinkernd ist doch auch schon was Zwinkernd
Gespeichert
Hagi
Full Member
***
Offline Offline

Beiträge: 201


Profil anzeigen WWW
« Antworten #3 am: August 26, 2007, 15:21:10 »

Von C habe ich leider sehr wenig Kenntnisse, aber wenn du die Adresse von PORTB als Byte definierst, wirst das sehr wahrscheinlich nicht klappen.
Ich würde es mit einem Datentyp mit mind. 16 Bit breite versuchen.
Gespeichert

Schoasch
Sr. Member
****
Offline Offline

Beiträge: 343



Profil anzeigen
« Antworten #4 am: August 26, 2007, 19:48:07 »

Hi

Das könnte jetzt aber auch ein gutes Zeichen sein ;-). vl Initialisierst du es ja jetzt richtig.
Achja... was mir auch aufgefallen ist. Die Endlossschleife im Main fehlt.

Ich hab hier auch mal einen Treiber fürs LCD geschrieben. Vl. funktioniert dieser(ist eh irgendwo hier vergraben). Ansonst wärs eine gute übung, den Treiber selbst zu schreiben ;-)

mfg Schoasch
Gespeichert
Buddy
Newbie
*
Offline Offline

Beiträge: 5


Profil anzeigen
« Antworten #5 am: September 03, 2007, 02:38:48 »

Es klappt noch immer nicht  Weinen , ich flip noch aus.. sollte wohl doch bei meiner php programmierung bleiben Zwinkernd

Für was die endlos schleife im Main? sollte doch auch so gehen oder nicht?
Gespeichert
Buddy
Newbie
*
Offline Offline

Beiträge: 5


Profil anzeigen
« Antworten #6 am: September 03, 2007, 03:06:40 »

hab grad versucht deinen treiber zu benutzen, versteh ihn zwar besser als den anderen aber der lässt sich nicht kompilieren, bekomm ne fehlermeldung.
Zuerst "Cannot Change Device Type this far into the code"
wahrscheinlich bedingt durch das zweite "#include <18F4420.h>" in deinem Treiber, hab   ich ja schon in der header drin(wobei das dem doch wurst sein sollte). also entfernt dann bekomm ich bei:
"#bit TRIS_RS = TRISC.0" den fehler "undefined identifier". der mag das bit dann nimma Zwinkernd ich versteh nichts mehr.. ich glaub ich geh mal lieber ins bett.


Gespeichert
hendi062
Newbie
*
Offline Offline

Beiträge: 31


Profil anzeigen
« Antworten #7 am: September 03, 2007, 15:30:26 »

Hallo, die Endlosschleife ist wichtig, da der Controller dein Programm sonst genau einmal ausführt und danach dann draußen ist, er rutscht also nur durch.
Mit dem CCS kenn ich mich leider nicht aus, aber nachdem was ich hier so gesehen hab, sieht das für mich so aus, als sollte es funktionieren(das mit dem bit), solange es außerhalb der main steht, bzw. am Anfang des Programms...
Weiter kann ich dir leider auch nicht helfen.
Gespeichert
Schoasch
Sr. Member
****
Offline Offline

Beiträge: 343



Profil anzeigen
« Antworten #8 am: September 03, 2007, 22:05:02 »

Hi

Poste mal den Programmcode den du zusammengestopelt hast.

Zitat
wahrscheinlich bedingt durch das zweite "#include <18F4420.h>" in deinem Treiber, hab   ich ja schon in der header drin(wobei das dem doch wurst sein sollte). also entfernt dann bekomm ich bei:
"#bit TRIS_RS = TRISC.0" den fehler "undefined identifier".

Hast du das TRISC-Register zuvor definiert?
So gehts:
Code:
#byte TRISC = 0xf94
(Die Adressen findest du in der "Special-function register map")

mfg Schoasch
Gespeichert
Buddy
Newbie
*
Offline Offline

Beiträge: 5


Profil anzeigen
« Antworten #9 am: November 06, 2007, 22:11:05 »

So,

da ich heute endlich mal wieder etwas Zeit hatte und es wieder versucht habe. und noch immer nichts auf die Reihe bekommen hab. Häng ich mal meinen "Versuch" an Zwinkernd
Sorry wenn ich mich evt bischen Doof anstell Weinen (jetz weiß ich, warum ich damals systemintegrator gelernt hab und nicht anwendunsentwickler  :lol:)

Euch zwischendrin mal n dickes Danke das ihr mir trotzdem helft.

Mein TRISC hat die Adresse "0xF82" habs aber trotzdem nicht kompilieren können, selber Fehler.(habs wieder rausgemacht, vllt. hab ich ja flasch gemacht)

Könnt mich auch gern im ICQ belehren(wäre mir lieber, wegen erklärungen L&#228;chelnd ) 100922583

das mit der endlosschleife versteh ich nicht, er soll mir ja nur ein einziges mal, jetz in meinem beispiel, das lcd initialisieren und mir was am display ausgeben.
Oder meint ihr das allgemein eine schleife drin sein muss damit er das programm nicht durchläuft und sich abschaltet. in meinem fall ultrakurz den text ausgibt und sich dann beendet. Hab jetz mal eine Control led eingebaut. die sich in einer schleife befindet, somit sollte ja die daten am lcd bestehen bleiben

* lcd_neu.zip (2.94 KB - runtergeladen 218 Mal.)
« Letzte Änderung: November 06, 2007, 23:23:50 von Buddy » Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.065 Sekunden mit 19 Zugriffen.
 
Top! Top!