
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> Hallo! > Ich habe nun im Forum schon gelesen, dass es wohl bei Display's mit dem Controller KS0073 etwas zu Problemen kommen kann mit der Initialisierung usw... > Nun meine Frage: > Weiß jemand wie ich die Initialisierung ändern muss, damit es funktioniert??? Ich meine, wie ändere ich die Initialisierung überhaupt?? > In BASIC++ mach ich da ja nur LCD.INIT und sonst nix... > > Es handelt sich um das 4x20 Display von Conrad "EA DIP204B-4NLW". > > Weiß jemand obs damit zu Problemen kommen kann, mit der M-Unit 2.0 in BASIC++ > Wie siehts mit der Zeilenanordnung an?? also mit LCD.POS?? geht das mit dem KS0073 > Das Display kommt morgen erst, dann kann ich testen, aber ich war schon etwas geschockt als ich als Neuling von diesen Problemen gelesen hab... > > > Hallo! Ich habe mal versucht den Code für die KS0073 Kontroller-Display's von CCBASIC in BASIC++ umzuwandeln. Leider hab ich nicht wirklich viel Peil in CCBASIC.... Kann mir bitte jemand der sich mit beidem auskennt kurz sagen, ob das in etwa die selbe funktion hat?? kann es leider im moment aus hardwaremangel nicht testen, brauche es aber am Wochenende :-( Wär super wenn mal jemand drüberschaut! ORIGINAL in CCBASIC: '------ I/O PORTS --------- '-------------------------- define LCDPORT byteport[2] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- define OUTBYTE byte[1] define LCDDATA byte[2] print "#ON_LCD#"; print "#INIT#"; &h24 LCD_WRITECMD(&h24):pause 2 LCDDATA=&h09:gosub LCD_WRITECMD:pause 2 LCDDATA=&h20:gosub LCD_WRITECMD:pause 2 print "#ON_LCD#";"#INIT#"; LCDDATA=&h24:gosub LCD_WRITECMD:pause 2 LCDDATA=&h09:gosub LCD_WRITECMD:pause 2 LCDDATA=&h20:gosub LCD_WRITECMD:pause 2 print"#L101#";"Z1"; print"#L133#";"Z2"; print"#L165#";"Z3"; print"#L197#";"Z4"; '--------- ------WRITE HI NIBBLE LCD COMMAND ------------ #LCD_WRITECMD OUTBYTE=(LCDDATA shr 4) LCDPORT=OUTBYTE or &B01000000:LCDPORT=OUTBYTE and &B10111111 '--------------- WRITE LO NIBBLE ------------------------ OUTBYTE=(LCDDATA and &H0F) LCDPORT=OUTBYTE or &B01000000:LCDPORT=OUTBYTE and &B10111111 return '------------------------------------------------------- Mein Vorschlag für BASIC++: '////////////////////////////////////// '// '// CCBasic++ '// Destination C-Control I M2.0 '// Beschreibung: '// '////////////////////////////////////// OPTION CC2.0 'Zielplattform 'Deklarationen 'Define byte1 as byte[1] '------ I/O PORTS --------- '-------------------------- define LCDPORT byteport[2] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- define OUTBYTE byte ' define LCDDATA byte[2] 'print "#ON_LCD#"; LCD.INIT 'print "#INIT#"; LCD_WRITECMD(24h) pause 2 LCD_WRITECMD(09h) pause 2 LCD_WRITECMD(20h) pause 2 'print "#ON_LCD#"; LCD.INIT 'print "#INIT#"; LCD_WRITECMD(24h) pause 2 LCD_WRITECMD(09h) pause 2 LCD_WRITECMD(20h) pause 2 'print"#L101#";"Z1"; LCD.POS 1,1 LCD.PRINT "Z1" 'print"#L133#";"Z2"; LCD.POS 1,33 LCD.PRINT "Z2" 'print"#L165#";"Z3"; LCD.POS 1,65 LCD.PRINT "Z3" 'print"#L197#";"Z4"; LCD.POS 1,97 LCD.PRINT "Z4" '--------- ------WRITE HI NIBBLE LCD COMMAND ------------ Function LCD_WRITECMD(LCDDATA as byte) 'define LCD_dat_hi as byte[2] 'LCD_dat_hi=LCDDATA shr 4 OUTBYTE=(LCDDATA shr 4) LCDPORT=OUTBYTE or 01000000b LCDPORT=OUTBYTE and 10111111b '--------------- WRITE LO NIBBLE ------------------------ OUTBYTE=(LCDDATA and 0Fh) LCDPORT=OUTBYTE or 01000000b LCDPORT=OUTBYTE and 10111111b end Function '------------------------------------------------------- |
| Antwort schreiben |