Re: Warum geht die if bedingung nicht....???? Kategorie: Programmierung Basic (von vitty - 24.11.2008 22:39) | ||
Als Antwort auf Re: Warum geht die if bedingung nicht....???? von Jürgen - 24.11.2008 21:49 | ||
| ||
> > Hallo hier mal ein teil eines programms, bin am verzweifeln. > > es zeigt mir zwar den wert der tastetur an wenn ich 1 drück > > aber die if schleife wird nicht ausgeführt. > > > > bitte helft mir.... > > > > > > Lab menu '#########################-Menü-####################################### > > > > zeile_1="FIRST CHARGE 1" > > zeile_2="CAP CHECK 2" > > zeile_3="FINAL CHARGE 3" > > zeile_3="UEBERWACHUNG 4" > > > > LCD_Start() > > LCD_Locate(1,1) > > LCD_WriteText(zeile_1) > > LCD_Locate(2,1) > > LCD_WriteChar(eingelesenASCII) > > 'LCD_Locate(3,1) > > 'LCD_WriteText(zeile_3) > > 'LCD_Locate(4,1) > > 'LCD_WriteText(zeile_4) > > AbsDelay(2000) > > > > Key_Init() > > > > eingelesen=Key_Scan() > > If eingelesen<>0 Then > > eingelesenASCII=Key_TranslateKey(eingelesen) > > End If > > '###########################-First Charge-##################################### > > If eingelesenASCII=1 Then > > LCD_Start() > > '*********************************************************************** > > ADC_Set(0xC0,ADC1) 'adc F0 initialisieren (zellen) > > Uges=0XC0/1023*ADC_Read() > > 'ACHTUNG Spannungsteiler einfügen für gesammtspannung > > ADC_Disable() > > If Uges<20 Then 'programm überprüft den messdeckel > > zeile_1="BitteMessplatte" 'wenn nicht angebracht sprung zurück > > zeile_2=" anbringen" 'ins menü > > > > LCD_Start() > > LCD_Locate(1,1) > > LCD_WriteText(zeile_1) > > LCD_Locate(2,1) > > LCD_WriteText(zeile_2) > > AbsDelay(3000) > > LCD_ClearLCD() > > Goto menu > > End If > > '********************************************************************** > > First_Charge() > > > > > Hallo Vitty, > > Du wandelst mit Key_TranslateKey deine Eins in ASCII um. Wenn mich nicht alles > täuscht ist die 1 in ASCII 49. Versuche doch mal If eingelesenASCII=49 Then. > Habe es selbst nicht ausprobiert, könnte aber gehen. > > Grü�e > Jürgen > Dankeschön ich schau immer in der tabelle in der ersten reihe garnicht gesen das da noch ein ziffernfeld ist. hab mal noch ne frage kann des sein das augenge invertiert sind? und zwar nach dem code, is es klar aber wenn ich es ausführe ist pC0 on und pC1 off und der pc3 der auch nur kurz an sein dürfte ist immer an. Kann mal jemand den code ansehen u mir sagen was ich diesmal falsch gemacht hab..... Sub First_Charge() 'funktion zur messung der zellen i=1 For i=1 To 20 Port_DataDir(cport,0xff) If i=1 Then Port_WriteBit(19,PORT_ON) 'register löschen AbsDelay(500) Port_WriteBit(19,PORT_OFF)' Port_WriteBit(16,PORT_ON)'register port a on wenn i=1 Else Port_WriteBit(16,PORT_OFF)'register port a off End If If i>1 Then 'Port_WriteBit(23,PORT_OFF)'register port a off End If Port_WriteBit(17,PORT_ON) 'portC6 register b Port_WriteBit(18,PORT_ON) 'portC5 register clk AbsDelay(500) Port_WriteBit(18,PORT_OFF) 'off clk register AbsDelay(200) ADC_Set(0xC0,ADC0) 'adc F0 initialisieren (zellen) ADC_Read() zellen(i)=0XC0/1023*ADC_Read()' Spannung ausrechnen zeile_1="ZELLE" 'ausgabe der zellenwerte LCD_Start() 'auf dem bildschirm LCD_Locate(2,1) LCD_WriteText(zeile_1) LCD_Locate(2,7) LCD_WriteWord(i,2) LCD_Locate(2,11) LCD_WriteFloat(zellen(i),4) AbsDelay(2000) LCD_ClearLCD() EEPROM_WriteFloat(i,zellen(i)) 'speichern der werte!!!!!!! If i=20 Then Port_WriteBit(19,PORT_ON) 'register löschen on Flanke AbsDelay(500) 'verzögerung 0,5 sec. Port_WriteBit(19,PORT_OFF)'Clr off Port_WriteBit(17,PORT_OFF)'port b am register off. End If Next End Sub Vielen dank im voraus!!!!! | ||
Antwort schreiben Antworten: Re: Warum geht die if bedingung nicht....???? (von Jürgen - 26.11.2008 22:12) Re: Warum geht die if bedingung nicht....???? (von vitty - 28.11.2008 15:47) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum