Es geht trotz deiner Hilfe nicht,
vieleicht lieg´s am programm...
Zusammengewürfelt aus: 2_ERWEITERUNG_LCD & 2_EINFÜHRUNG_SCHALLSENSORCode:'-------------------------- '------ I/O PORTS --------- '-------------------------- '- INTERFACE LCD/EXTPORT -- define sdio port[1] define sclio port[3] define strobe port[4] define LSTROBE port[7] '-- INTERFACE COM/NAV ----- define DATALINE port[1] define CLOCKLINE port[2] '-- CC2 INTERFACE ------- define CC2POWER port[8] '------ LCD INTERFACE ------ define lcd_port byteport[2] define lcd_rs port[14] define lcd_rw port[13] define lcd_e port[15] '-------------------------- '------ SENSORS --------- '-------------------------- define LIGHT_L ad[7] define LIGHT_R ad[6] define SYS_VOLTS ad[3] define CHRG_CURRENT ad[2] define SYS_CURRENT ad[1] define MIC ad[4] define TOUCH ad[5] '--------------------------- '------ DRIVE ------------- '--------------------------- define SPEED_L da[1] define SPEED_R da[2] define REV_L port[6] define REV_R port[5] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- '--- INTERFACE BUFFER ---- define LBYTE byte[1] define HBYTE byte[2] define SUBCMD byte[3] '---- OPERATION DATA ------ define EXTPORT byte[4] define LED1_F bit[29] define LED2_F bit[30] define LED3_F bit[31] define LED4_F bit[32] define SYSTEM_STATUS byte[5] define LEDPORT byte[6] define L1_F bit[41] define L2_F bit[42] define L3_F bit[43] define L4_F bit[44] define L5_F bit[45] define L6_F bit[46] define L7_F bit[47] define L8_F bit[48] define HSAMPLE byte[14] define GP byte[15] define SAMPLE byte[16] '---- LCD DRIVER ------------- define lcd_buf byte[7] define lcd_param byte[8] '-------------------------- '---- USER MEMORY ------- '-------------------------- '--- BIN-DEZIMAL-CONVERTER --- define hunderter byte [10] define zehner byte[11] define einer byte[12] define value byte[13] define value16 word [12] '--- SYSTEMROUTINEN ----------- define PLM_SLOW &H01C2 define SYSTEM &H01C7 define LED_DRIVE &H01CA define COMNAV &H0144 '- ERWEITERTE SYSTEM ROUTINEN - define REVR &H0101 'ANTRIEB RECHTS RÜCKWÄRTS define REVL &H0106 'ANTRIEB LINKS RÜCKWÄRTS define FWDR &H010B 'ANTRIEG RECHTS VORWÄRTS define FWDL &H0110 'ANTRIEB LINKS VORWÄRTS define ROTR &H0115 'RECHTS DREHEN define ROTL &H0119 'LINKS DREHEN define REV &H011D 'RÜCKWÄRTS define FWD &H0121 'VORWÄRTS define COMNAV_STATUS &H0125 'UPDATED ALLE FLAGS IM STATUS-REGISTER define ACS_LO &H01E0 'ACS POWER LO define ACS_HI &H01E8 ' define ACS_MAX &H01F0 ' define SEND_TLM &H013A 'SENDET TELEMETRIE (CH=HBYTE,DATEN=LBYTE) define SEND_SYSSTAT &H0134 'SENDET TLM KANAL 0,SYSTEM STATUS '(FLAGS für ACS,FWD/REV, ACS_LO/HI/MAX) '---------- INIT--------------- LSTROBE=off:CC2POWER=on gosub SUBSYS_PWR_ON:REV_L=off:REV_R=off gosub lcd_init:gosub message1 beep 368,10,0:pause 50 #Save HSAMPLE=0 for GP=1 to 100 SAMPLE=MIC if SAMPLE > HSAMPLE then HSAMPLE=SAMPLE next 'IIIIIIIIIIIIII Ergebnisse IIIIIIIIIIIIIIIII gosub lcd_cls lcd_param = 1 : gosub lcd_gotoline lcd_param = &H44 : gosub lcd_writechar 'D lcd_param = &H41 : gosub lcd_writechar 'A lcd_param = &H54 : gosub lcd_writechar 'T lcd_param = &H41 : gosub lcd_writechar 'A lcd_param = &H20 : gosub lcd_writechar ' value=hsample gosub convert pause 20 goto save '------------------------------------------- 'IIIIIII MESSAGE 1 IIIIIIIIIII #message1 gosub lcd_cls lcd_param = 1 : gosub lcd_gotoline lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H43 : gosub lcd_writechar 'C lcd_param = &H2D : gosub lcd_writechar '- lcd_param = &H43 : gosub lcd_writechar 'C lcd_param = &H4F : gosub lcd_writechar 'O lcd_param = &H4E : gosub lcd_writechar 'N lcd_param = &H54 : gosub lcd_writechar 'T lcd_param = &H52 : gosub lcd_writechar 'R lcd_param = &H4F : gosub lcd_writechar 'O lcd_param = &H4C : gosub lcd_writechar 'L lcd_param = 2 : gosub lcd_gotoline lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H52 : gosub lcd_writechar 'R lcd_param = &H4F : gosub lcd_writechar 'O lcd_param = &H42 : gosub lcd_writechar 'B lcd_param = &H4F : gosub lcd_writechar 'O lcd_param = &H54 : gosub lcd_writechar 'T lcd_param = &H20 : gosub lcd_writechar ' lcd_param = &H20 : gosub lcd_writechar ' goto Save '++++++++++++ CONVERT BINARY TO DECIMAL +++++++++++++++ #convert hunderter=value/100 if hunderter>0 then lcd_param=hunderter+&H30 else lcd_param=&H20 gosub lcd_writechar 'zehner abfragen zehner=(value-(hunderter*100))/10 lcd_param=zehner+&H30 gosub lcd_writechar 'einer abfragen einer=value-(hunderter*100)-(zehner*10) lcd_param=einer+&H30 gosub lcd_writechar return 'IIIIIIIIIII LED DRIVER IIIIIIIIIIIIIIIII #LED1ON LED1_F=on:goto EXTPORT_WRITE #LED1OFF LED1_F=off :goto EXTPORT_WRITE #LED2ON LED2_F=on:goto EXTPORT_WRITE #LED2OFF LED2_F=off:goto EXTPORT_WRITE #LED3ON LED3_F=on:goto EXTPORT_WRITE #LED3OFF LED3_F=off:goto EXTPORT_WRITE #LED4ON LED4_F=on:goto EXTPORT_WRITE #LED4OFF LED4_F=off:goto EXTPORT_WRITE #LEDSOFF EXTPORT=EXTPORT and &H0F #EXTPORT_WRITE SYS SYSTEM:pulse STROBE:RETURN '--- LEDS AUF DER BASIS ERWEITERUNG ------ #L1ON L1_F=on:goto LEDPORT_WRITE #L1OFF L1_F=off :goto LEDPORT_WRITE #L2ON L2_F=on:goto LEDPORT_WRITE #L2OFF L2_F=off :goto LEDPORT_WRITE #L3ON L3_F=on:goto LEDPORT_WRITE #L3OFF L3_F=off :goto LEDPORT_WRITE #L4ON L4_F=on:goto LEDPORT_WRITE #L4OFF L4_F=off :goto LEDPORT_WRITE #L5ON L5_F=on:goto LEDPORT_WRITE #L5OFF L5_F=off :goto LEDPORT_WRITE #L6ON L6_F=on:goto LEDPORT_WRITE #L6OFF L6_F=off :goto LEDPORT_WRITE #L7ON L7_F=on:goto LEDPORT_WRITE #L7OFF L7_F=off :goto LEDPORT_WRITE #L8ON L8_F=on:goto LEDPORT_WRITE #L8OFF L8_F=off :goto LEDPORT_WRITE #LOFF LEDPORT=0 #LEDPORT_WRITE SYS LED_DRIVE:pulse LSTROBE:RETURN '--------------------------------------- '------------- LCD ROUTINES ------------- '---------------------------------------- #LCD_INIT ' alle ports 0 lcd_port = OFF ' 8-Bit-Modus aktivieren lcd_param=&H38 : gosub LCD_WRITECMD ' mit 8-Bit-Command in 4-Bit-Modus umschalten lcd_port=&B00000010 tog lcd_e tog lcd_e ' ab jetzt 4-Bit-Modus lcd_param = &H28 : gosub LCD_WRITECMD lcd_param = &H0C : gosub LCD_WRITECMD ' Display loeschen #LCD_CLS lcd_param = &H02 : gosub LCD_WRITECMD lcd_param = &H01 : gosub LCD_WRITECMD return ' Zeilenwechsel #LCD_GOTOLINE if lcd_param = 1 then lcd_param = &H80 if lcd_param = 2 then lcd_param = &HC0 goto LCD_WRITECMD ' LCD-Kommando #LCD_WRITECMD lcd_buf = OFF goto LCD_WRITE ' Zeichenausgabe #LCD_WRITECHAR lcd_buf = &B00100000 ' Kommando oder Zeichen an Display senden #LCD_WRITE lcd_port = lcd_buf or (lcd_param shr 4) ' Hi-Nibble tog lcd_e tog lcd_e lcd_port = lcd_buf or (lcd_param and &H0F) ' Lo-Nibble tog lcd_e tog lcd_e return 'IIIIII SYSTEMROUTINEN COMM/NAV SYSTEM IIIII #GET_IRDATA SUBCMD=1:sys COMNAV:return #SEND_IRDATA SUBCMD=0:sys COMNAV:return #RC5 SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFC HBYTE=00:SUBCMD=2:sys COMNAV:return #RC5_INT SUBCMD=4:sys COMNAV:LBYTE= (HBYTE and &HFE)or 2 HBYTE=00:SUBCMD=2:sys COMNAV:return #REC80 SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H01)and&HFD HBYTE=00:SUBCMD=2:sys COMNAV:return #REC80_INT SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H03) HBYTE=00:SUBCMD=2:sys COMNAV:return 'IIIIII SYSTEMROUTINEN SYSTEM IIIIIIIIIIII #NO_ACS_INT SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFB HBYTE=00:SUBCMD=2:sys COMNAV:return #ACS_INT_200 SUBCMD=4:sys COMNAV:LBYTE= HBYTE or &H04 HBYTE=50:SUBCMD=2:sys COMNAV:return #SUBSYS_PWR_ON sdio=on:sclio=on:strobe=off:EXTPORT=(EXTPORT and &HFE)or 8 sys SYSTEM:return #SUBSYS_PWR_OFF EXTPORT=(EXTPORT and &HF7)or 1:sys SYSTEM deact sdio:deact sclio:return #CLR_DISTANCE SUBCMD=3:sys COMNAV:return #L_DISTANCE SUBCMD=6:sys COMNAV:return #R_DISTANCE SUBCMD=7:sys COMNAV:return '---------COM/NAV GERÄTEREIBER ------------- syscode "p5driv12.s19"
Ich wollte ja eigentlich nur Sensorwerte am LCD ausgeben
doch das ist scheinbar schwerer als es klingt







Zitieren

Lesezeichen