-
-
Erfahrener Benutzer
Fleißiges Mitglied
OK, weil bis jetzt niemand gepostet hat (war ja auch Wochenende) vielleicht etwas mehr Infos.
Der Code ist der aus den Beispielen von der Seite von Stefan.
'------ I/O PORTS ---------
'--------------------------
'--- IIC INTERFACE -------
define SDA port[9]
define SCL port[10]
'--------------------------
'------ SYSTEM MEMORY -----
'--------------------------
Import "..\Lib\ASCII_TABLE.blib"
Import "..\Lib\IIC_LCD_DRIVE.blib"
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'II PCF 8574 POERWEITERUNG FÜR LCD II
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
LCD.INIT
LCD.OFF
'---------- IICBUS INIT ------------------------
SDA=on
SCL=on
'----------------------------------------------
pause 2
LCD_INIT()
'----- WRITE CHARACTERS LINE 1 ---------------
LINE1(4)
LCD_WRITE(20h,U)
LCD_WRITE(20h,N)
LCD_WRITE(20h,I)
LCD_WRITE(20h,T)
LCD_WRITE(20h,BLANK)
LCD_WRITE(20h,M)
LCD_WRITE(20h,BLANK)
LCD_WRITE(20h,Z2)
LCD_WRITE(20h,DOT)
LCD_WRITE(20h,Z0)
#LOOP
goto LOOP
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
In der IIc_LCD_DRIVE.blib habe ich den byteport auf 8 gesetzt
, da alle drei Adressjumper am Modul gesetzt sind. Die Pullups sind ebenfalls aktiviert.
Der Code :
'--- PCF 8574 LCD DRIVER AT ADDR 5 / EXT BYTEPORT 8 ---
'-------------------------------------------------------
FUNCTION LCD_WRITE(BUF as byte,LCDDATA as byte)
define EXTPORT byteport[8]
define OUTBYTE as byte
'--------- ------WRITE HI NIBBLE ------------------------
OUTBYTE=BUF or (LCDDATA shr 4)
EXTPORT=OUTBYTE or 01000000b
EXTPORT=OUTBYTE and 10111111b
'--------------- WRITE LO NIBBLE ------------------------
OUTBYTE=BUF or (LCDDATA and 0Fh)
EXTPORT=OUTBYTE or 01000000b
EXTPORT=OUTBYTE and 10111111b
END FUNCTION
'-----------------------------------------------------
FUNCTION LCD_CLR()
LCD_WRITE(0,02h)
LCD_WRITE(0,01h)
pause 2
END FUNCTION
'----------------------------------------------------
FUNCTION LCD_INIT()
define EXTPORT byteport[8]
EXTPORT=0
LCD_WRITE(0,38h)'0=WRITE CMD
EXTPORT= 00000010b
EXTPORT= 01000010b
EXTPORT= 00000010b
LCD_WRITE(0,28h)
LCD_WRITE(0,0Ch)
LCD_CLR()
END FUNCTION
'----------------------------------------------------
FUNCTION LINE1(POS as byte)
LCD_WRITE(0,7Fh+POS)
END FUNCTION
'----------------------------------------------------
FUNCTION LINE2(POS as byte)
LCD_WRITE(0,BFh+POS)
END FUNCTION
Warum geht das ganze nicht?
Eine Frage anbei: Ich habe die Unit geschenkt bekommen und habe gelesen, daß es Updates des OS gibt, könnte das der Grund für ein NICHTfunktionieren der Unit sein?
MfG
Jens
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen