-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Hilfe...finde die fehler nicht heraus

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    25.08.2009
    Beiträge
    33

    Hilfe...finde die fehler nicht heraus

    Anzeige

    Hi ,
    Ich arbeite an einem Projekt für ein Referat. Dabei lese ich eine Lichtschranke aus. Ich möchte aus dem Code der von der Lichtschranke kommt, buchstaben bekommen, ähnlcih wie ein bit-code....Nun bin ich am programmieren. Problem: Bascom findet fehler und ich finde nicht heraus wie ich diese behebe. Würde mich über Antworten sehr freuen.

    Hier die Fehler:
    Line 111 3 Parameters expected
    Line 113 Source Variable does not match the target variable
    line 0 If then expeted
    und line 0 end if expected


    Hier der Code....Ich weis er ist einfach geschrieben, ohne Funktionen und so.





    $regfile = "m32def.dat"

    $framesize = 32
    $swstack = 32
    $hwstack = 32



    Config Pinc.4 = Input
    Config Pinc.5 = Input
    Config Pinc.6 = Output
    Config Pind.7 = Output
    Config Pina.1 = Output

    Dim Wert As Integer
    Dim Licht As Integer
    Dim Eins As Integer
    Dim Zwei As Integer
    Dim Drei As Integer
    Dim Vier As Integer
    Dim Funf As Integer
    Dim Sechs As Integer
    Dim Sieben As Integer
    Dim Acht As Integer
    Dim Neun As Integer


    Dim Zahl As String * 200
    Dim Zeichen As String * 200

    Pinc.4 = 1
    Pinc.5 = 1
    Pinc.6 = 1

    Sound Portd.7 , 400 , 450 'als start
    Waitms 500
    Sound Portd.7 , 400 , 450

    Config Adc = Single , Prescaler = Auto


    Do


    Start Adc
    Licht = Getadc(1)
    If Licht > 900 Then
    Eins = 1
    Else
    If Licht < 900then
    Eins = 0
    Else


    If Licht > 900 Then
    Zwei = 2
    Else
    If Licht < 900 Then
    Zwei = 0
    Else


    If Licht > 900 Then
    Drei = 4
    Else
    If Licht < 900 Then
    Drei = 0
    Else


    If Licht > 900 Then
    Vier = 7
    Else
    If Licht < 900 Then
    Vier = 0
    Else


    If Licht > 900 Then
    Funf = 15
    Else
    If Licht < 900 Then
    Funf = 0
    Else

    If Licht > 900 Then
    Sechs = 30
    Else
    If Licht < 900then
    Sechs = 0
    Else


    If Licht > 900 Then
    Sieben = 60
    Else
    If Licht < 900 Then
    Sieben = 0
    Else


    If Licht > 900 Then
    Acht = 90
    Else
    If Licht < 900 Then
    Acht = 0
    Else
    Wert = A + B + C + D + E + F + G + H
    If Wert = 1 Then
    Zeichen = A

    If Wert = 2 Then
    Zeichen = B
    Else
    If Wert = 4 Then
    Zeichen = C
    Else
    If Wert = 7 Then
    Zeichen = D
    Else
    If Wert = 15 Then
    Zeichen = E

    If Wert = 30 Then
    Zeichen = F

    If Wert = 60 Then
    Zeichen = G

    If Wert = 90 Then
    Zeichen = H

    If Wert = 3 Then
    Zeichen = I

    If Wert = 5 Then
    Zeichen = J

    If Wert = 16 Then
    Zeichen = K

    If Wert = 31 Then
    Zeichen = L

    If Wert = 61 Then
    Zeichen = M
    If Wert = 91 Then
    Zeichen = N
    If Wert = 6 Then
    Zeichen = O
    If Wert = 9 Then
    Zeichen = P
    If Wert = 17 Then
    Zeichen = Q
    If Wert = 32 Then
    Zeichen = R
    If Wert = 62 Then
    Zeichen = S
    If Wert = 64 Then
    Zeichen = T
    If Wert = 94 Then
    Zeichen = U
    If Wert = 11 Then
    Zeichen = V
    If Wert = 19 Then
    Zeichen = W
    If Wert = 34 Then
    Zeichen = X
    If Wert = 94 Then
    Zeichen = Y



    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If

    Print Zeichen





    Loop

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Tausch mal dieses Monster an If...Then..Endif-Verschachtelungen gegen ne Select Case aus. So ist das nicht gerade übersichtlich. Und Nachzählen, ob die Anzahl an End If stimmt will glaub ich keiner.

    Select Case Wert
    Case 1: Zeichen = A
    Case 2: Zeichen = B
    ....
    End Select
    #ifndef MfG
    #define MfG

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.03.2006
    Beiträge
    244
    1. fehler: outputs als Port nicht als pin configuren
    2. fehler bei den pullups port= 1 nicht pin
    3. warum machst du die end ifs alle am schluss? und nicht nach jedem if satz? weil so wie es jetzt ist macht er im unterren teil nur was wenn wert = 1 ist tipp: um sowas zu lösen ist select case auch ganz schön.

    4. ganz am ende fehlt noch ein (formales) "end"

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    25.08.2009
    Beiträge
    33
    super vielen dank.... aber die probleme bestehen weiterhin.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Wie sieht denn der Code jetzt aus?
    #ifndef MfG
    #define MfG

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.03.2006
    Beiträge
    244
    das wäre das einfachste wenn du den code nochmal postest. am besten makierst du den code dann noch und drückst oben auf den "code" butten (du kannst auch von hand [ code ] CODECODECOEDECODE [ / code ] ohne den leerzeichen in den klammern natürlich machen. Dann wird der Code schön formatiert angezeigt

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    25.08.2009
    Beiträge
    33
    Code:
    
    $regfile = "m32def.dat"
    
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    
    
    
    Config Portc.4 = Input
    Config Portc.5 = Input
    Config Portc.6 = Output
    Config Portd.7 = Output
    Config Porta.1 = Output
    
    Dim Wert As Integer
    Dim Licht As Integer
    Dim Eins As Integer
    Dim Zwei As Integer
    Dim Drei As Integer
    Dim Vier As Integer
    Dim Funf As Integer
    Dim Sechs As Integer
    Dim Sieben As Integer
    Dim Acht As Integer
    Dim Neun As Integer
    
    
    Dim Zahl As String * 200
    Dim Zeichen As String * 200
    
    Portc.4 = 1
    Portc.5 = 1
    Portc.6 = 1
    
    Sound Portd.7 , 400 , 450                                   'als start
    Waitms 500
    Sound Portd.7 , 400 , 450
    
    Config Adc = Single , Prescaler = Auto
    
    
      Do
    
    
       Start Adc
       Licht = Getadc(1)
       If Licht > 900 Then
       Eins = 1
         End If
       If Licht < 900then
       Eins = 0
         End If
    
    
       If Licht > 900 Then
       Zwei = 2
         End If
       If Licht < 900 Then
       Zwei = 0
    
         End If
       If Licht > 900 Then
       Drei = 4
         End If
       If Licht < 900 Then
       Drei = 0
          End If
    
    
       If Licht > 900 Then
       Vier = 7
         End If
       If Licht < 900 Then
       Vier = 0
          End If
    
    
       If Licht > 900 Then
       Funf = 15
         End If
       If Licht < 900 Then
       Funf = 0
        End If
    
       If Licht > 900 Then
       Sechs = 30
        End If
       If Licht < 900then
       Sechs = 0
         End If
    
    
       If Licht > 900 Then
       Sieben = 60
         End If
       If Licht < 900 Then
       Sieben = 0
         End If
    
    
       If Licht > 900 Then
       Acht = 90
          End If
       If Licht < 900 Then
       Acht = 0
        End If
       Wert = A + B + C + D + E + F + G + H
           If Wert = 1 Then
       Zeichen = A
               End If
       If Wert = 2 Then
       Zeichen = B
         End If
    
       If Wert = 4 Then
       Zeichen = C
          End If
       If Wert = 7 Then
       Zeichen = D
          End If
       If Wert = 15 Then
       Zeichen = E
          End If
       If Wert = 30 Then
       Zeichen = F
           End If
       If Wert = 60 Then
       Zeichen = G
           End If
       If Wert = 90 Then
       Zeichen = H
           End If
       If Wert = 3 Then
        Zeichen = I
           End If
       If Wert = 5 Then
       Zeichen = J
          End If
       If Wert = 16 Then
       Zeichen = K
               End If
       If Wert = 31 Then
       Zeichen = L
             End If
       If Wert = 61 Then
       Zeichen = M
         End If
       If Wert = 91 Then
       Zeichen = N
         End If
       If Wert = 6 Then
       Zeichen = O
         End If
       If Wert = 9 Then
      Zeichen = P
        End If
       If Wert = 17 Then
       Zeichen = Q
         End If
       If Wert = 32 Then
       Zeichen = R
         End If
       If Wert = 62 Then
       Zeichen = S
         End If
       If Wert = 64 Then
      Zeichen = T
        End If
       If Wert = 94 Then
       Zeichen = U
         End If
       If Wert = 11 Then
       Zeichen = V
         End If
       If Wert = 19 Then
       Zeichen = W
         End If
       If Wert = 34 Then
      Zeichen = X
        End If
       If Wert = 94 Then
       Zeichen = Y
    
         End If
    
    
    
    
    
    Print Zeichen
    
    
    
    
    
    Loop
    End

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    25.08.2009
    Beiträge
    33
    Über das select case weis ich nicht genau bescheid., deshalb würde ich gerne beim if bleiben

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.03.2006
    Beiträge
    244
    Das mit If ist auch ok.

    am anfang sollte noch baudrate rein:

    d.h. $baud = 9600
    oder was auch immer du benützt

    dann die inputs müssen mit pin declariert werden.. da ist Bascom ein wenig eigen. Output --> port input-->pin und pullups ein port

    dann If Licht < 900then fehlt ein leerzeichen

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.03.2006
    Beiträge
    244
    was macht die zeile

    wert = A+B....

    ich seh nirgends ein A,B oder C

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •