Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board
> > 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)