
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Forum, ich habe ein Problem mit folgenden Code (die if ... then Abfrage im "aktiven Display" funzt nicht und ich komme da einfach nicht weiter (Display ständig "C" und nicht auf "U"). Umgebung: A_byte = 0 nach Einschalten (Reset) port[4] = A_PORT -> Taster -> L-aktiv Zustand des Tasters soll "zwischengespeichert" sein -> also A_byte = 0 -> Taster auf L -> A_byte = 1 -> Taster auf L -> A_byte = 0 usw. Zusätzlich wird der Zustand im Display angezeigt: 0 = "C" -> 1 = "U". Vielen Dank für einen Tip! Cu Dominique Codeausschnitt: '****************************** '* PS-MC1-Steuerung * '* V 1.1 -> 24.09.2004 * '* Test: 1 * '****************************** '------ I/O PORTS --------- define RL_PORT port[1] 'Port Rechts-/Linkslauf define H2O_PORT port[2] 'Port Wasserkühlung define A_PORT port[4] 'Port Antriebsauswahl (Controller or Unit) define AD7 AD[7] 'AD-Eingang Poti -> Leistung -> wird später DA[1] '---- LCD PARMAMETERS ----- define LINE byte[1] define CHAR byte[1] define POS byte[1] define BARS byte[1] define BIN byte[1] define DEZ byte[1] '-- LCD SYSTEM ADDR ----- define LCD_INIT &H101 define LCD_CLR &H11D define LCD_LINE1 &H125 define LCD_LINE2 &H12A define LCD_POSL1 &H12F define LCD_POSL2 &H133 define LCD_SCRL &H13B define LCD_SCRR &H140 define LCD_BAR &H145 define LCD_BIN &H154 define LCD_DEZ &H1C3 define LCD_WRT &H1A4 define LCD_PRINT &H179 '----- Variablen ----- define NULL &H30 'Hex für 0 define A_byte byte 'Byte Antrieb zur Zwischenspeicherung define P byte 'P = Leistung '----- PROGRAMM ----- A_byte = 0 '----- INIT LCD ----- SYS &H101 '------ START-TEXT mit Display 4 x 16 ------ POS=1:SYS LCD_POSL1:sys LCD_PRINT:print"LEISTUNG:" POS=1:SYS LCD_POSL2:sys LCD_PRINT:print"ANTRIEB :" POS=17:SYS LCD_POSL1:sys LCD_PRINT:print"SPRAY :" POS=17:SYS LCD_POSL2:sys LCD_PRINT:print"R/L-LAUF:" POS=16:SYS LCD_POSL1:sys LCD_PRINT:print"%" POS=16:SYS LCD_POSL2:sys LCD_PRINT:print"C" POS=30:SYS LCD_POSL1:sys LCD_PRINT:print"OFF" POS=30:SYS LCD_POSL2:sys LCD_PRINT:print"OFF" pause 100 '------ aktives DISPLAY -------- #LOOP P = AD7 * 100 / 255 'Umrechnung AD7 -> 0 - 100 % POS=13:SYS LCD_POSL1:CHAR=NULL+P/100:SYS LCD_WRT 'Anzeige 100-er POS=14:SYS LCD_POSL1:CHAR=NULL+P MOD 100/10:SYS LCD_WRT 'Anzeige 10-er POS=15:SYS LCD_POSL1:CHAR=NULL+P MOD 10:SYS LCD_WRT 'Anzeige 1-er if (not A_PORT) and (A_byte=0) then gosub A_TEXT_1 'Abfrage ob Port=L und A_byte=0 if (not A_PORT) and (A_byte=1) then gosub A_TEXT_0 'Abfrage ob Port=L und A_byte=1 goto LOOP end '*************************************************************************************** '------ HIER IST DAS PROBLEM -> das Display will nicht umschalten!!!!!!!!!!!!!! -------- '*************************************************************************************** '------ Umschaltung Anzeige "C" und A_byte=0 ------ #A_TEXT_0 A_byte = 0 POS=16:SYS LCD_POSL2:sys LCD_PRINT:print"C" return '------ Umschaltung Anzeige "U" und A_byte=1 ------ #A_TEXT_1 A_byte = 1 POS=16:SYS LCD_POSL2:sys LCD_PRINT:print"U" return '--------------- DISPLAY TREIBER ---------------------- syscode "lcddrv11.s19" |
| Antwort schreiben |