- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 6 von 6

Thema: DS 1820 Bascom hat Problem mit if

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2006
    Beiträge
    138

    DS 1820 Bascom hat Problem mit if

    Anzeige

    Praxistest und DIY Projekte
    Hi Leute,

    ich habe mir nen kleinen Code gebastelt der nen DS18S20 abfägt und das dan auf ein LCD gibt.Doch Bascom bringt immer den fehler das es irgend was mit if-then nich blickt.

    Der Fehler lautet:

    error: 7 Line:0 IF Then expected (94)
    Error: 123 Line: 0 End If expected

    Aber wenn ich drauf klicke passiert nix.Und ich finde Auch keine Line 0.

    Hier mein Quelltext (ein bischen zusammen geschnipselt):


    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    $baud = 19200
    
    Config 1wire = Portb.0
    
    Const Ds1820 = &H10
    
    Const Skiprom = &HCC
    Const Read_rom = &H33
    Const Convertt = &H44
    Const Read_ram = &HBE
    Const Write_ram = &H4E
    Const Copy_ram = &H48
    Const Recall_ee = &HB8
    Const Read_power = &HB4
    
    Dim Family_code As Byte
    Dim Serial_number(6) As Byte
    Dim Crc As Byte
    Dim Scratch(9) As Byte
    
    Dim I As Byte
    Dim Temp As Word
    Dim Temp1 As Integer
    Dim Stemp As Single
    
    Config Portd.7 = Output
    Lcd_rw Alias Portd.7
    Lcd_rw = 0
    
    Config Lcdbus = 4
    
    
    
    Do
      Cls
      Initlcd
       1wreset
       If Err = 1 Then
       Lcd "DS 1820 Error"
    
       1wwrite Read_rom
    
       Family_code = 1wread()
       For I = 1 To 6
           Serial_number(i) = 1wread()
       Next
       Crc = 1wread()
       If Family_code <> Ds1820 Then
       Exit Do
    
       1wwrite Convertt
        Do
        Temp = 1wread()
        Loop Until Temp = &HFF
    
         1wreset
         If Err = 1 Then
         Locate 1 , 1
         Lcd " DS 1820 Error"
    
          1wwrite Skiprom
          1wwrite Read_ram
    
          For I = 1 To 9
              Scratch(i) = 1wread()
              Next
    
              Temp = Scratch(2)
              Shift Temp , Left , 8
    
               Temp = Temp + Scratch(1)
               Temp1 = Temp
               Locate 1 , 1
               Lcd "Der Temp.wert ist" ; Temp ; "Counts."
               Temp1 = Temp1 / 2
               Locate 2 , 1
               Lcd "Die gemessen Temp.ist" ; Temp1 ; "Grad"
                Stemp = Scratch(8) - Scratch(7)
                Stemp = Stemp / Scratch(8)
                Stemp = Stemp + Temp1
                Stemp = Stemp - 0.25
                 Locate 3 , 1
                 Lcd "Und exakt";
                 Lcd Fusing(stemp , "#.##");
                 Locate 4 , 1
                 Lcd "Grad Celsius"
                 Wait 2
               Loop
               Locate 1 , 1
               Lcd "Kein Sensor aktiv"
               End If
               End If
               End
    Edit : + Code-tags (PicNick)


    Es wäre toll wenn ihr mal drüber kucken könntet.

    MFG

    Marius


  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2006
    Beiträge
    138
    Oh bei denn Sonnenbrillensmielis sollte eigentlich in klammer 8 stehen.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803

    IF-THEN-ELSE-END IF

    Hallo AVRBoy,

    dein Prog ist ja schwer unübersichtlich! Stell sowas besser in eine Codebox (Nachrichtentext -> Code).

    Bascom braucht immer für jedes IF ein END IF.
    Ausnahme: Das ganze steht in EINER Zeile, wie ...
    If A = 10 Then Print "Hello"

    Aber, wenn du das nicht in einer Zeile machst, muss es so aussehen:
    If A = 10 Then
    Print "Hello"
    END IF

    Also: In deinem Prog gibts 3 IFs (jeweils nicht die 1-Zeilen-Form!) und nur 2 END IFs. Damit fehlt ein END IF.

    Gruß Dirk

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2006
    Beiträge
    138
    Oh danke ich werde es überarbeiten. wie die leute das in so codeboxen stellen rätsel ich schon lange. danke

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    wie die leute das in so codeboxen stellen rätsel ich schon lange
    Na so: (Leerzeichen entfernen)
    [ code ] Hier kommt der Code [ /code ]

    Gruß
    Christopher

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2006
    Beiträge
    138
    Oh fett danke werde ich beim nächsten ma machen.

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress