
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Kay, Es ist nicht die Frage, ob basic++ intuitiv ist oder nicht. Es liegt wohl eher daran, daß ich den Wald vor lauter Bäumen nicht sehe. Eigentlich bin ich kein Programmieranfänger (bezüglich Schleifen), aber ich war bis jetzt nicht in der Lage ein Zeichen in das Dispaly zu laden. Wenn das Grad Zeichen auf 223 vorhanden ist ist das ja toll, aber ich möchte ja wissen was ich falsch mache bzw. wie es denn geht! Den Link den du mir geschickt hast kannte ich schon. Den wollte ich auch schon in Basic++ ummüntzen. Ich bekam auch keine Fehler beim Compilieren, aber ich krigs halt nicht hin, daß ich die Zeichen dann im Display habe. In sofern bräuchte ich jemand, der mir dein prog in Basic++ mal aufzeigt, damit ich sehe was ich falsch mache. Anbwei mal den Prog-Code,, den ich gebaut habe: '////////////////////////////////////// '// '// CCBasic++ '// Destination C-Control I M2.0 '// Beschreibung: '// '////////////////////////////////////// OPTION CC2.0 'Zielplattform 'Deklarationen 'Define byte1 as byte[1] import "lib\LCD_KS0073.Bas" ' *** BYTE-VARIABLEN FUER LCD-TREIBER *** define lcd_buf byte 'Puffer fuer Datentranfer zum Display define lcd_dat byte 'zu sendenden Daten-Bytes define zeile byte 'Zeilennummer fuer DD-RAM-Adressierung define spalte byte 'Spaltennummer fuer DD-RAM-Adressierung define j byte 'Laufvariable ' *** Port-Variablen LCD-Treiber *** define lcd_port byteport[2] 'LCD-Interface-Port - gesamt 'define lcd_rs port[14] 'Befehls-Leitung - fuer Cmd's auf 1 'define lcd_e port[15] 'Execute-Leitung - H-L-Pulse define i byte define j byte KS0073_init() lcd.clear print"#L101#"; print"gleich gehts los"; pause 20 'Sonderzeichen in den CG-RAM exportieren 'for i = 1 to 8 ' lcd_dat = 64 + (i - 1) * 8 ' SEND_COM() ' pause 2 ' for j = 0 + (i - 1) * 8 to (i - 1) * 8 + 7 ' looktab CG_CODES,j,lcd_dat ' SEND_CHAR() ' pause 2 ' next 'next for i = 0 to 55 step 8 lcd_dat = 64 + i SEND_COM() for j = i to i + 7 looktab CG_CODES,j,lcd_dat SEND_CHAR() next next lcd.clear port[16]=off print"#L101#"; print"A"; print"#L102#"; print chr(1); print"#L103#"; print CHR(1); print"#L104#"; print CHR(2); print"#L105#"; print CHR(3); print"#L106#"; print CHR(4); print"#L107#"; print CHR(5); print"#L108#"; print CHR(6); print"#L109#"; print CHR(7); #weiter print"#L110#"; print "Z"; print"#L201#"; print"zweite Zeile"; #loop goto loop ' ***** LCD-SUB-ROUTINEN ***** 'function SEND_CHAR() ' Unterprogramm "Zeichen senden" ' 'lcd_buf = &B01100000 ' lcd_buf = 96 ' lcd_port = lcd_buf or (lcd_dat shr 4) ' obere 4 Bits senden ' pulse EN ' pause 2 ' 'lcd_port = lcd_buf or (lcd_dat and &H0F) ' untere 4 Bits senden ' lcd_port = lcd_buf or (lcd_dat and 15) ' untere 4 Bits senden ' ' pulse EN ' pause 2 'end function 'function LOCATE() ' Unterprogramm "Cursor auf Display platzieren" ' if zeile = 1 then lcd_dat = 127 + spalte ' if zeile = 2 then lcd_dat = 191 + spalte ' if zeile = 3 then lcd_dat = 147 + spalte ' if zeile = 4 then lcd_dat = 211 + spalte ' gosub SEND_COM 'end function function SEND_COM() ' Unterprogramm "Befehl an Display senden" 'lcd_buf = &B01000000 lcd_buf = 64 SEND_OUT() end function function SEND_CHAR() ' Unterprogramm "Zeichen senden" 'lcd_buf = &B01100000 lcd_buf = 0 end function function SEND_OUT() lcd_port = lcd_buf or (lcd_dat shr 4) ' obere 4 Bits senden pulse EN pause 2 'lcd_port = lcd_buf or (lcd_dat and &H0F) ' untere 4 Bits senden lcd_port = lcd_buf or (lcd_dat and 15) ' untere 4 Bits senden pulse EN pause 2 end function '#CLS ' Unterprogramm "Display loeschen" 'function cls() ' lcd_dat = 2 ' SEND_COM() ' lcd_dat = 1 ' SEND_COM() 'end function ' *** Zeichengenerator-Daten *** table CG_CODES 31 17 17 17 17 17 17 31 'Code 00, leerer Rahmen 31 31 31 31 31 31 31 31 'Code 01, voller Klotz 10 00 17 17 17 17 14 00 'Code 02, grosses Ue 00 16 08 04 02 01 00 00 'Code 03, Zeichen \ 00 00 00 00 00 00 00 00 'Code 04, nicht belegt 00 00 04 14 04 00 00 00 'Code 05, Zeichen CTRL+G 04 00 04 08 16 17 14 00 'Code 06, verkehrtes Fragezeichen 15 16 14 17 14 01 30 00 'Code 07, Paragraph '17 14 17 17 31 17 17 00 'Code __, grosses Ae '17 14 17 17 17 17 14 00 'Code __, grosses Oe end table Vielleicht kann mir ja jemand meinen Fehler aufzeigen. Ich find in nicht..... > > Bin echt ratlos und mit meiner Weisheit am Ende. > > Ich hatte versucht die Basic-Progs in Basic++ um zu schreiben. Das ist wohl gescheitert. > > muss ich doch leicht grinsen an dieser stelle und kann mir die > provokante frage einfach nich verkneifen: > "Ist Basic++ DOCH nich sooooo intuitiv wie angepriesen?" > > aber eine gute nachricht für dich, jusaro: > das °-zeichen kennt dein display bereits. es verbirgt sich > hinter dem character-code 223. nur deswegen musst du dich > also mal überhaupt nicht verrückt machen :-) > > ansonsten habe ich unten noch mal den link angefügt, > wo etwas ausführlicher beschrieben ist, wie das geht. > allerdings solltest du DEN quelltext, der da drin steht > nicht nehmen, da mir dort offensichtlich fehler unterlaufen sind. > also die folgebeiträge des threads lesen oder den treiber nehmen, > den ich neulich hier gepostet hatte. > zwei schleifen, die eine tabelle mit konstanten auslesen, > solltest aber wirklich umsetzen können. ist doch nur eine > frage von syntax und nicht von funktionalität. |
| Antwort schreiben |