Hat schon jemand mit dem Parallax 2x16Serial LCD, Backlit (#27977) gearbeitet? Habe o.g. an meinem PIC (18F2550) über die RS232 angeschlossen u versuche nun sämtliche Commands aus dem Datenblatt des LCDs über meinen PIC zum laufen zu bringen - alles erfolglos - bis auf die Textausgabe - die funktioniert einwandfrei. Aber commands wie "Turn backlight on" oder "Move cursor to line 1, position 4" (um jetzt nur ein paar zu nennen) funktioniert nicht. Liegt es am Datenblatt od. an meinem code? (code-Bsp.: printf("\fHello World\r") printf("Guten Morgen") ) -> wie füge ich nun weitere Codes ein bzw. benutze ich statt dem Text zB die og. Befehle? (Info nebenbei - bin noch Anfänger in PIC-Programmierung)
Der Befehl für z.B. "Backlight on" scheint 0x11 zu sein. Also musst du den senden. Bei Befehlen, die aus nur einem Byte bestehen, schreibst du dafür das Befehlsbyte einfach in das TXREG. (nachdem du geprüft hast ob es leer ist) Welchen Compiler benutzt du ?
1 | #define BKL_ON 0x11
|
2 | #define BKL_OFF 0x12
|
3 | ...
|
4 | while(BusyUSART()){;} // warten bis frei |
5 | TXREG = BKL_ON; // oder TXREG = 0x11 ohne die defines |
Hallo, danke für deine Hilfe - aber ich hab´s mittlerweile schon selber geschafft (selbstaufdieschulterklopf) verwende die Befehle aus dem Datenblatt des Parallax nun mit "putc(...)" in Klammer der Befehl in Dec. programmiere in C mit MPLAB bzw CCS (kenn mich da mit den Bezeichnungen nicht so genau aus... :-/ )
Hast du in der Dokumentation geschaut, ob du vor Benutzung von putc() überprüfen musst ob das Senderegister frei ist ? Ist bei der Compiler-Installation auch der Sourcecode mit dabei ? Die Funktionen der Lib fragen da meistens noch unnötigerweise ab ob 9 Bit modus. So sieht das ungefähr bei den MCHP Compilern aus:
1 | void WriteUSART(char data) |
2 | {
|
3 | if(TXSTAbits.TX9) // 9-bit mode? |
4 | {
|
5 | TXSTAbits.TX9D = 0; // Set the TX9D bit according to the |
6 | if(USART_Status.TX_NINE) // USART Tx 9th bit in status reg |
7 | TXSTAbits.TX9D = 1; |
8 | }
|
9 | |
10 | TXREG = data; // Write the data byte to the USART |
11 | }
|
Es gibt vermutlich auch noch so was wie puts() anstelle von printf() ...
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.