20 extern uint8_t I2C_start(uint8_t i2c_address);
21 extern uint8_t I2C_address(uint8_t i2c_address, uint8_t address, uint8_t operation);
22 extern uint8_t I2C_write(uint8_t i2c_address, uint8_t byte);
23 extern uint8_t I2C_read(uint8_t i2c_address);
24 extern uint8_t I2C_repeatRead(uint8_t i2c_address);
25 extern uint8_t I2C_stop(uint8_t i2c_address);
33 target->
bus = i2c_num;
34 target->address = address;
37 void AT24C256_writeByte(
AT24C256 *target, uint16_t address, uint8_t byte){
39 I2C_start(target->
bus);
40 I2C_address(target->
bus,target->address,I2C_WRITE);
41 I2C_write(target->
bus,(uint8_t)(address >> 8));
42 I2C_write(target->
bus,(uint8_t)(address));
43 I2C_write(target->
bus,(uint8_t)(byte));
44 I2C_stop(target->
bus);
47 uint8_t AT24C256_readByte(
AT24C256 *target, uint16_t address){
50 I2C_start(target->
bus);
51 I2C_address(target->
bus,target->address,I2C_WRITE);
52 I2C_write(target->
bus,(uint8_t)(address >> 8));
53 I2C_write(target->
bus,(uint8_t)(address));
54 I2C_start(target->
bus);
55 I2C_address(target->
bus,target->address,I2C_READ);
56 I2C_stop(target->
bus);
57 byte = I2C_read(target->
bus);
Header file for Atmel EEPROM AT24C256.
void AT24C256_setup(AT24C256 *target, uint8_t i2c_num, uint8_t address)
Initalizes the slave device and populates data structure variable.
uint8_t bus
The I2C bus which the device is connected to.