Nach langer Zeit habe ich nun endlich wieder Zeit gefunden meinen RP6 auszugraben und daran weiter zu machen ^^.
der Kompass ist nur auf der M32 Platine angeschlossen und dass auslesen funktioniert fast ohne probleme ;D.
Mein Problem ist, dass beim auslesen immer folgender Error kommt:
I2C ERROR - TWI STATE: 0x20
dieser wird durch folgenden Code verursacht:
Danke schonmal im vorraus =)Code:void read_data_raw(vector *a, vector *m) { // read accelerometer values I2CTWI_transmitByte(0x30, 0x30); I2CTWI_transmitByte(0x30, OUT_X_L_A); unsigned char axl = I2CTWI_readByte(0x31); I2CTWI_transmitByte(0x30, OUT_X_H_A); unsigned char axh = I2CTWI_readByte(0x31); I2CTWI_transmitByte(0x30, OUT_Y_L_A); unsigned char ayl = I2CTWI_readByte(0x31); I2CTWI_transmitByte(0x30, OUT_Y_H_A); unsigned char ayh = I2CTWI_readByte(0x31); I2CTWI_transmitByte(0x30, OUT_Z_L_A); unsigned char azl = I2CTWI_readByte(0x31); I2CTWI_transmitByte(0x30, OUT_Z_H_A); unsigned char azh = I2CTWI_readByte(0x31); // read magnetometer values I2CTWI_transmitByte(MAG_ADDRESS, 0x3C); I2CTWI_transmitByte(MAG_ADDRESS, OUT_X_H_M); unsigned char mxh = I2CTWI_readByte(0x3D); //I2CTWI_transmitByte(MAG_ADDRESS, OUT_X_L_M); unsigned char mxl = I2CTWI_readByte(0x3D); //I2CTWI_transmitByte(MAG_ADDRESS, OUT_Y_H_M); unsigned char myh = I2CTWI_readByte(0x3D); //I2CTWI_transmitByte(MAG_ADDRESS, OUT_Y_L_M); unsigned char myl = I2CTWI_readByte(0x3D); //I2CTWI_transmitByte(MAG_ADDRESS, OUT_Z_H_M); unsigned char mzh = I2CTWI_readByte(0x3D); //I2CTWI_transmitByte(MAG_ADDRESS, OUT_Z_L_M); unsigned char mzl = I2CTWI_readByte(0x3D); a->x = axh << 8 | axl; a->y = ayh << 8 | ayl; a->z = azh << 8 | azl; m->x = mxh << 8 | mxl; m->y = myh << 8 | myl; m->z = mzh << 8 | mzl; } //... // in der main ist noch folgendes: I2CTWI_initMaster(100); // muss ich diese zahl evtl höher machen? I2CTWI_setRequestedDataReadyHandler(I2C_requestedDataReady); I2CTWI_setTransmissionErrorHandler(I2C_transmissionError); DDRC = 0; PORTC = (1 << PC1) | (1 << PC0); // enable pull-ups on SDA and SCL, respectively







Zitieren

Lesezeichen