'-------------------------------------------------------------------- ' E9102B Board Tester ' ' Proz 8535 E91.BAS ' Refspannung muß 4.04 V sein '-------------------------------------------------------------------- $regfile = "8535def.dat" $crystal = 7372800 $baud = 19200 'Const Ref = 4.04 Const X = 0.003945 'Ref / 1024 Const Y = 253.21782 '1023 / Ref Declare Function Messung(byval Channel As Byte , Byval Minimal As Single , Byval Maximal As Single) As Byte Config Adc = Single , Prescaler = Auto Config Pind.4 As Output Pind.4 = 0 ' set LED GO OFF Config Pind.2 As Output Pind.2 = 0 ' set LED NG OFF Dim A1 As Byte , A2 As Byte , A3 As Byte , A4 As Byte , Go As Byte A1 = 0 A2 = 0 A3 = 0 Go = 0 Start Adc Wait 1 Print "start" Main: A1 = Messung(0 , 1.5 , 1.7) A2 = Messung(1 , 0.80 , 1.0) A3 = Messung(2 , 0.80 , 1.0) A4 = Messung(3 , 0.80 , 1.0) Go = A1 And A2 Go = A1 And A2 Go = Go And A3 Go = Go And A4 If Go = 1 Then Print "Go" Config Pind.4 As Output Pind.4 = 1 ' set LED GO ON Else Print "NoGo" Config Pind.2 As Output Pind.2 = 1 ' set LED NG OFF End If Wait 3 Goto Main End Function Messung(byval Channel As Byte , Byval Minimal As Single , Byval Maximal As Single) As Byte Local Messwert As Single , W As Word , Minim As Word , Maxim As Word , Temp As Single 'Start Adc 'Waitms 100 Temp = Y * Minimal Minim = Temp Temp = Y * Maximal Maxim = Temp W = Getadc(channel) W = Getadc(channel) Messwert = W * X If W > Minim And W < Maxim Then Messung = 1 Else Messung = 0 End If 'Print Minim ; " " ; W ; " " ; Maxim ; " " ; Minimal ; " " ; Maximal Print "C: " ; Channel ; " " ; "Min: " ; Fusing(minimal , "#.##") ; " " ; "*Mess: " ; Fusing(messwert , "#.##") ; "* Max: " ; Fusing(maximal , "#.##") ; " Auswertung: " ; Messung End Function 'end program