Hey Dirk,
vielen Dank schon mal für deine Bemühungen, aber leider ist bei diesem Programm das gleiche Problem: wieder dieser I2C ERROR...
Lg Marcel
Werbung
Hey Dirk,
vielen Dank schon mal für deine Bemühungen, aber leider ist bei diesem Programm das gleiche Problem: wieder dieser I2C ERROR...
Lg Marcel
Hey Morpheus1997,
vermutlich wirst Du nicht drumrumkommen, eine andere I²C Library, z.B. die von Peter Fleury, zu verwenden. Wir hatten mit einem anderen Sensor auch das Problem, dass die RP6Lib automatisch I²C Stops, Restarts oder Starts sendet, die für den Sensor nicht gesendet werden dürfen.
Natürlich kannst Du gerne noch weiter versuchen, vielleicht schaffst Du es ja doch noch. Vermutlich wirst Du aber schneller mit einer anderen Library Erfolg haben.
Viele Grüße
teamohnename
Geändert von teamohnename (05.03.2012 um 18:20 Uhr)
Hey Morpheus1997
nimm mal die aktuellste Lib vom rp6. Damit funktioniert es einwandfrei.
Die funktion zum einlesen des hdmm01 sieht dann einfach so aus :
#define hdmm01_address 0x60
void rbh_i2c_hdmm01( void )
{
unsigned char buf[ 5 ];
I2CTWI_transmit2Bytes( hdmm01_address, 0x00, 0b00000001 ); // take measurement
mSleep( 10 );
I2CTWI_transmitByte( hdmm01_address, 0x00 );
I2CTWI_readBytes( hdmm01_address, buf, 5 ); // read control - register + x , y - values
writeString_P("\nrbh_i2c_hdmm01: 0x");
writeInteger( buf[ 0 ], HEX);
writeChar(' ');
writeInteger( buf[ 1 ], HEX);
writeChar(' ');
writeInteger( buf[ 2 ], HEX);
writeChar(' ');
writeInteger( buf[ 3 ], HEX);
writeChar(' ');
writeInteger( buf[ 4], HEX);
writeChar(' ');
}
Viele Grüße
HSC123
Lesezeichen