Hi,
du hast glaube ich einen Fehler beim einlesen! Durch das Overlay ersparst du dir das shiften, deswegen springen deine Werte (wegen dem Shiften) um den Wert 256![]()
Probier mal so:
Kann sein, dass du zuerst das zweite Byte auslesen musst, das kommt drauf an, ob dein Sensor MSB oder LSB zuerst ausgibt.Code:Dim Imx As Integer Dim Imy As Integer Dim Imz As Integer Dim Imx_tmp(2) As Byte At Imx Overlay Dim Imy_tmp(2) As Byte At Imy Overlay Dim Imz_tmp(2) As Byte At Imz Overlay Sub Magnet_readsensordata() I2cstart I2cwbyte Magnet_w_addr I2cwbyte Out_x_h_m I2cstart I2cwbyte Magnet_r_addr I2crbyte Imx_tmp(1) , Ack I2crbyte Imx_tmp(2) , Ack I2crbyte Imy_tmp(1) , Ack I2crbyte Imy_tmp(2) , Ack I2crbyte Imz_tmp(1) , Ack I2crbyte Imz_tmp(2) , Nack I2cstop End Sub
Gruß
Chris







Zitieren

Lesezeichen