9 #ifndef DEVICE_CONNECTED 10 #define DEVICE_CONNECTED 1 16 #ifndef DEVICE_UNCONNECTED 17 #define DEVICE_UNCONNECTED 0 21 #include "I2C_Master.h" 42 uint8_t register_address,
46 uint8_t error = I2C_Master_MasterSendStart(device_address,I2C_Master_WRITE_XFER_MODE);
47 if (error == I2C_Master_MSTR_NO_ERROR)
50 error = I2C_Master_MasterWriteByte(register_address);
51 if (error == I2C_Master_MSTR_NO_ERROR)
54 error = I2C_Master_MasterSendRestart(device_address, I2C_Master_READ_XFER_MODE);
55 if (error == I2C_Master_MSTR_NO_ERROR)
58 *data = I2C_Master_MasterReadByte(I2C_Master_ACK_DATA);
60 I2C_Master_MasterSendStop();
66 I2C_Master_MasterSendStop();
72 uint8_t register_address,
73 uint8_t register_count,
77 uint8_t error = I2C_Master_MasterSendStart(device_address,I2C_Master_WRITE_XFER_MODE);
78 if (error == I2C_Master_MSTR_NO_ERROR)
82 error = I2C_Master_MasterWriteByte(register_address);
83 if (error == I2C_Master_MSTR_NO_ERROR)
86 error = I2C_Master_MasterSendRestart(device_address, I2C_Master_READ_XFER_MODE);
87 if (error == I2C_Master_MSTR_NO_ERROR)
90 uint8_t counter = register_count;
93 data[register_count-counter] =
94 I2C_Master_MasterReadByte(I2C_Master_ACK_DATA);
98 data[register_count-1]
99 = I2C_Master_MasterReadByte(I2C_Master_NAK_DATA);
101 I2C_Master_MasterSendStop();
107 I2C_Master_MasterSendStop();
113 uint8_t register_address,
117 uint8_t error = I2C_Master_MasterSendStart(device_address, I2C_Master_WRITE_XFER_MODE);
118 if (error == I2C_Master_MSTR_NO_ERROR)
121 error = I2C_Master_MasterWriteByte(register_address);
122 if (error == I2C_Master_MSTR_NO_ERROR)
125 error = I2C_Master_MasterWriteByte(data);
126 if (error == I2C_Master_MSTR_NO_ERROR)
129 I2C_Master_MasterSendStop();
136 I2C_Master_MasterSendStop();
142 uint8_t register_address)
145 uint8_t error = I2C_Master_MasterSendStart(device_address, I2C_Master_WRITE_XFER_MODE);
146 if (error == I2C_Master_MSTR_NO_ERROR)
149 error = I2C_Master_MasterWriteByte(register_address);
150 if (error == I2C_Master_MSTR_NO_ERROR)
153 I2C_Master_MasterSendStop();
160 I2C_Master_MasterSendStop();
166 uint8_t register_address,
167 uint8_t register_count,
171 uint8_t error = I2C_Master_MasterSendStart(device_address, I2C_Master_WRITE_XFER_MODE);
172 if (error == I2C_Master_MSTR_NO_ERROR)
175 error = I2C_Master_MasterWriteByte(register_address);
176 if (error == I2C_Master_MSTR_NO_ERROR)
179 uint8_t counter = register_count;
182 error = I2C_Master_MasterWriteByte(data[register_count-counter]);
183 if (error != I2C_Master_MSTR_NO_ERROR)
186 I2C_Master_MasterSendStop();
193 I2C_Master_MasterSendStop();
198 I2C_Master_MasterSendStop();
207 uint8_t error = I2C_Master_MasterSendStart(device_address, I2C_Master_WRITE_XFER_MODE);
208 I2C_Master_MasterSendStop();
210 if (error == I2C_Master_MSTR_NO_ERROR)
I2C_ErrorCode I2C_Peripheral_Start(void)
Start the I2C peripheral.
Hardware specific I2C interface.
I2C_ErrorCode
Error codes returned by the I2C Functions.
I2C_ErrorCode I2C_Peripheral_WriteRegisterNoData(uint8_t device_address, uint8_t register_address)
Write single byte over I2C.
I2C_ErrorCode I2C_Peripheral_WriteRegisterMulti(uint8_t device_address, uint8_t register_address, uint8_t register_count, uint8_t *data)
Write multiple bytes over I2C.
I2C_ErrorCode I2C_Peripheral_IsDeviceConnected(uint8_t device_address, I2C_Connection *connection)
Check if device is connected over I2C.
I2C_ErrorCode I2C_Peripheral_WriteRegister(uint8_t device_address, uint8_t register_address, uint8_t data)
Write a byte over I2C.
I2C_ErrorCode I2C_Peripheral_ReadRegister(uint8_t device_address, uint8_t register_address, uint8_t *data)
Read one byte over I2C.
I2C_Connection
Values returned to determine if device connected or not.
I2C_ErrorCode I2C_Peripheral_Stop(void)
Stop the I2C peripheral.
I2C_ErrorCode I2C_Peripheral_ReadRegisterMulti(uint8_t device_address, uint8_t register_address, uint8_t register_count, uint8_t *data)
Read multiple bytes over I2C.