Sub Process_Globals
Public Serial1 As Serial
Private sck, dout As Pin
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Log("AppStart")
sck.Initialize(sck.A3, sck.MODE_OUTPUT)
dout.Initialize(dout.A2, dout.MODE_INPUT)
Log(GetValue)
End Sub
Sub GetValue As Long
Do While dout.DigitalRead
Loop
Dim data(3) As Byte
For j = 2 To 0 Step -1
For i = 7 To 0 Step -1
sck.DigitalWrite(True)
If dout.DigitalRead Then Bit.Set(data(j), i) Else Bit.Clear(data(j), i)
sck.DigitalWrite(False)
Next
Next
sck.DigitalWrite(True)
sck.DigitalWrite(False)
data(2) = Bit.Xor(data(2), 0x80)
Dim u1 As ULong = Bit.ShiftLeft(data(2), 16)
Dim u2 As ULong = Bit.ShiftLeft(data(1), 8)
Dim u3 As ULong = Bit.ShiftLeft(data(0), 1)
Return Bit.Or(Bit.Or(u1, u2), u3)
End Sub