Notes

 
 

I2C class notes

Dec 2, 10:32 AM

[Avago Sensor]

[AXL]

[Data Sheet]

[i2c info]


//I2C color sensor #define AVAGO (0×74) //Not really used, but alas, here it is for reference. #define AVAGO_W (0xE8) //write #define AVAGO_R (0xE9) //read
//I2C 3 axis accelerometer #define AXL_W (0×3A) //write #define AXL_R (0×3B) //read #include “/TWI_hack.c”

inline int i2c_setRegister(int address, int value);
void axl_init();
int axl_read_x();

void setup()
{ Serial.begin(9600); i2c_init(); axl_init();
}

void loop()
{ Serial.println(axl_read_x()); delay(100);
}

void axl_init()
{ i2c_start(AXL_W); // set device address and write mode i2c_setRegister(0×20,0×47); //address,value i2c_stop();
}

int axl_read_x()
{ int x=-1; i2c_start(AXL_W); // set device address and write mode i2c_write(0×29); //X out i2c_rep_start(AXL_R); //send another start x =i2c_readNak(); //Read one byte, and then send the no-ACK to signal done i2c_stop(); if(x>127) x= (255-x)*-1; //x+=255; return x;
}

inline int i2c_setRegister(int address, int value)
{ i2c_write(address); //address (this one isn’t error checked for ACK) return i2c_write(value); //value
}

Comments