Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Dual LCDPCF+ Cursor ansteuerung Kategorie: C-Control I V1.1 (von Naturbanause - 29.11.2005 15:35)
 Als Antwort auf Dual LCDPCF+ Cursor ansteuerung von Benno - 26.11.2005 12:26
Naturbanause nutzt:  CC1-M-Unit V1.1
Hallo,

Ich kann das folgende Programmbeispiel nicht testen, da ich kein LCD 4x40 besitze. Es sollte aber funktionieren. Die automatische Umschaltung des Beleuchtungsbits geschieht durch zusätzliche in die LCD-Routinen von CCTools eingefügte Programmzeilen. Die Positionierung des Cursors geschieht beispielsweise durch:
"cmd = Line2 + 15 : gosub LCD_Line" --> Zeile 2, Position 15 (mögliche Werte für Position sind 0 ... 39)

Sollten die Zeilen 1+2 mit den Zeilen 3+4 vertauscht sein, so muss die Zeile "if cmd and &h80 then LCDLight = on else LCDLight = off" in der Subroutine "#LCD_Line" durch die Zeile "if cmd and &h80 then LCDLight = off else LCDLight = on" ersetzt werden.

Ob eine Abfrage der aktuellen Cursorposition möglich ist, weiß ich nicht.

Gruß Mario


Programmbeispiel:

'--------------------------------------------------------------
'Einsprungadressen von "int_i2c.s19" Release 19.09.04
'--------------------------------------------------------------
' PCF8574:
define PCFwrite   &h101
define PCFread    &h107
'--------------------------------------------------------------
' Bausteine mit Byte-Adress-Register
define WrByteBReg &h123
define WrWordBReg &h12F
define RdByteBReg &h15C
define RdWordBReg &h162
'--------------------------------------------------------------
' Bausteine mit Word-Adress-Register
define WrByteWReg &h139
define WrWordWReg &h141
define RdByteWReg &h16D
define RdWordWReg &h175
'--------------------------------------------------------------
' PCFLCD:
define putCmd8Bit &h1a9
define putCmd     &h17D
define putChar    &h1a3
define prnLCD     &h1C2
'--------------------------------------------------------------


define PCF 64

define cmd byte[1]

define LCDLight bit[192]

define Line1 &h00 : define Line2 &h40 : define Line3 &h80 : define Line4 &hc0


gosub LCD_INIT
pause 10

cmd = Line1 : gosub LCD_Line
sys prnLCD,LCDLight,0,PCF : print "Line 1"
 
cmd = Line2 : gosub LCD_Line
sys prnLCD,LCDLight,0,PCF : print "Line 2"

cmd = Line3 : gosub LCD_Line
sys prnLCD,LCDLight,0,PCF : print "Line 3"

cmd = Line4 : gosub LCD_Line
sys prnLCD,LCDLight,0,PCF : print "Line 4"

end

' ********** Routinen für I2C-LCD **********

#LCD_CLS
  LCDLight = off        '
  gosub LCD_CLS_sub     ' eingefügt, um beide
  LCDLight = on         ' Displayhälften
  #LCD_CLS_sub          ' zu löschen
sys putCmd,LCDLight,&b00000001,PCF
return
  #LCD_Line                                               ' Auswahl der Displaycontroler
  if cmd and &h80 then LCDLight = on else LCDLight = off  ' Controler 1 für Zeile 1+2 und
  cmd = cmd or &h80                                       ' Controler 2 für Zeile 3+4
#LCD_CMD
sys putCmd,LCDLight,cmd,PCF
return
#LCD_Char
sys putChar,LCDLight,cmd,PCF
return
#LCD_Init
  LCDLight = off        '
  gosub LCD_Init_sub    ' eingefügt, um beide
  LCDLight = on         ' Displaycontroler
  #LCD_Init_sub         ' zu initialisieren
sys putCmd8Bit,LCDLight,&b00110000,PCF
sys putCmd8Bit,LCDLight,&b00110000,PCF
sys putCmd8Bit,LCDLight,&b00110000,PCF
sys putCmd8Bit,LCDLight,&b00100000,PCF
sys putCmd,LCDLight,&b00101000,PCF
sys putCmd,LCDLight,&b00001100,PCF
sys putCmd,LCDLight,&b00000001,PCF
sys putCmd,LCDLight,&b00000110,PCF
return

' syscode "int_i2c.s19" 'nur einmal laden, dann auskommentieren


> Hallo Alle,
>
> Mein 4x40 LCD steuere ich an mit multitreiber von CCtools,  http://cctools.hs-control.de/download/cc1/i2c_multitreiber.zip  Alles arbeitet.
> Den umschaltung, es ist ein dual HDD44780 LCD, geschied wie von http://www.henrik-reimers.de/control/mmsr.htm#lcd beschrieben. Ich benutze als steuer puls die beleuchtungs puls
> Wenn ich den puls umschaltet kann ich in Linien 1 und  2 oder in Linien  3 und 4 Texte wiedergeben.
> Ich versuche jetzt die umschaltung im programm einzubinden aber das kriege ich nicht hin.
> Und ist es moeglich den aktuelle cursor position von Display abzufragen ? Und wie dann ?
> Vielleicht kann einer von euch mir Rat geben?
>
> Benno
>

 Antwort schreiben

Bisherige Antworten:

Re: Dual LCDPCF+ Cursor ansteuerung (von Benno - 29.11.2005 19:34)