Hi,
sorry habe mich etwas ungenau ausgedrückt.
Ich verwende ein RN-Contrlerboard mit Mega32. Habe die PINs des Sensors: +5V, GND, SCL und SDA mit den zutreffenden PINs des Wannenstecker von PortC (I2C) verbunden.
Das Programm habe ich aus dem RN-Artikelbereich:
Danke & GrüßeCode:Declare Function Rn_cmps_himmelsrichtung() As Word Declare Function Rn_cmps_firmware() As Byte ' ---------- Das RN-Control übliche -------------- $regfile = "m32def.dat" $framesize = 42 $swstack = 32 $hwstack = 32 $crystal = 16000000 'Quarzfrequenz $baud = 9600 Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1 ' ------------------------------------------------ Dim Himmelsrichtung As Word Dim Grad As Single Dim V As Byte Wait 3 'Warte 3 Sekunde I2cinit Print "RN-Control CMPS03 Kompass Testprogramm " Print "CMPS03 Kompass Firmware Version:" ; Rn_cmps_firmware() V = 1 Do Himmelsrichtung = Rn_cmps_himmelsrichtung() Print "Himmelsrichtung in 0,1 Grad Schritten: " ; Himmelsrichtung Grad = Himmelsrichtung / 10 Print "Himmelsrichtung genau in Grad: " ; Grad V = V + 3 Wait 1 Loop End Function Rn_cmps_himmelsrichtung() As Word Local Lob As Byte Local Hib As Byte Local Cmps_slaveid As Byte Local Cmps_slaveid_read As Byte Cmps_slaveid = &HC0 Cmps_slaveid_read = Cmps_slaveid + 1 'Register auswählen I2cstart I2cwbyte Cmps_slaveid I2cwbyte 2 I2cstop I2cstart I2cwbyte Cmps_slaveid_read I2crbyte Hib , Ack I2crbyte Lob , Nack I2cstop Rn_cmps_himmelsrichtung = Makeint(lob , Hib) End Function Function Rn_cmps_firmware() As Byte Local Firmware As Byte Local Cmps_slaveid As Byte Local Cmps_slaveid_read As Byte Cmps_slaveid = &HC0 Cmps_slaveid_read = Cmps_slaveid + 1 I2cstart I2cwbyte Cmps_slaveid I2cwbyte 0 'Leseregister festlegen I2cstop I2cstart I2cwbyte Cmps_slaveid_read I2crbyte Firmware , Nack I2cstop Rn_cmps_firmware = Firmware End Function
Hendrik







Zitieren

Lesezeichen