DS 1820 Bascom hat Problem mit if
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
](*,) ](*,)