Sub WriteEEPROM (DeviceAddress As Int, EEAddress As UInt, Value As Byte)
Dim Data(3) As Byte <-- Will be 2 + data length
Dim raf As RandomAccessFile
raf.Initialize(Data, True)
'raf.WriteInt16(Bit.ShiftRight(EEAddress, 8), raf.CurrentPosition) '<- writing 2 bytes each time
'raf.WriteInt16(Bit.And(EEAddress, 0xff), raf.CurrentPosition)
raf.WriteByte(Bit.ShiftRight(EEAddress, 8), raf.CurrentPosition)
raf.WriteByte(Bit.And(EEAddress, 0xff), raf.CurrentPosition)
raf.WriteByte(Value, raf.CurrentPosition)
wire.WriteTo(DeviceAddress, Data)
End Sub
Sub ReadExtEEPROM (DeviceAddress As Int, EEAddress As UInt) As Byte
Dim Data(2) As Byte '<-- 2 bytes instead of 5, to set the address
Dim raf As RandomAccessFile
raf.Initialize(Data, True)
' raf.WriteInt16(Bit.ShiftRight(EEAddress, 8), raf.CurrentPosition)
' raf.WriteInt16(Bit.And(EEAddress, 0xff), raf.CurrentPosition)
raf.WriteByte(Bit.ShiftRight(EEAddress, 8), raf.CurrentPosition)
raf.WriteByte(Bit.And(EEAddress, 0xff), raf.CurrentPosition)
wire.WriteTo(DeviceAddress, Data)
Delay(5)
Dim Answer() As Byte = wire.RequestFrom(DeviceAddress,10) ' just for fun
Log("Answer Length ",Answer.Length)
If Answer.Length>0 Then
For i=0 To Answer.Length-1
Log(Answer(i))
Next
Return Answer(0)
End If
End Sub