TwiceAsNice
2019-02-18
|
#include <avr/io.h>
#define | I2C_READ 1 |
defines the data direction (reading from I2C device) in i2c_start(),i2c_rep_start() More... | |
#define | I2C_WRITE 0 |
defines the data direction (writing to I2C device) in i2c_start(),i2c_rep_start() More... | |
#define | i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); |
void | i2c_init (void) |
initialize the I2C master interace. More... | |
void | i2c_stop (void) |
Terminates the data transfer and releases the I2C bus More... | |
unsigned char | i2c_start (unsigned char addr) |
Issues a start condition and sends address and transfer direction More... | |
unsigned char | i2c_rep_start (unsigned char addr) |
Issues a repeated start condition and sends address and transfer direction More... | |
void | i2c_start_wait (unsigned char addr) |
Issues a start condition and sends address and transfer direction More... | |
unsigned char | i2c_write (unsigned char data) |
Send one byte to I2C device More... | |
unsigned char | i2c_readAck (void) |
read one byte from the I2C device, request more data from device More... | |
unsigned char | i2c_readNak (void) |
read one byte from the I2C device, read is followed by a stop condition More... | |
unsigned char | i2c_read (unsigned char ack) |
read one byte from the I2C device More... | |
#define I2C_READ 1 |
defines the data direction (reading from I2C device) in i2c_start(),i2c_rep_start()
#define i2c_read | ( | ack | ) | (ack) ? i2c_readAck() : i2c_readNak(); |
#define I2C_WRITE 0 |
defines the data direction (writing to I2C device) in i2c_start(),i2c_rep_start()
void i2c_init | ( | void | ) |
initialize the I2C master interace.
Need to be called only once
void |
unsigned char i2c_read | ( | unsigned char | ack | ) |
read one byte from the I2C device
Implemented as a macro, which calls either i2c_readAck or i2c_readNak
ack | 1 send ack, request more data from device 0 send nak, read is followed by a stop condition |
unsigned char i2c_readAck | ( | void | ) |
read one byte from the I2C device, request more data from device
unsigned char i2c_readNak | ( | void | ) |
read one byte from the I2C device, read is followed by a stop condition
unsigned char i2c_rep_start | ( | unsigned char | addr | ) |
Issues a repeated start condition and sends address and transfer direction
addr | address and transfer direction of I2C device |
0 | device accessible |
1 | failed to access device |
unsigned char i2c_start | ( | unsigned char | addr | ) |
Issues a start condition and sends address and transfer direction
addr | address and transfer direction of I2C device |
0 | device accessible |
1 | failed to access device |
void i2c_start_wait | ( | unsigned char | addr | ) |
Issues a start condition and sends address and transfer direction
If device is busy, use ack polling to wait until device ready
addr | address and transfer direction of I2C device |
void i2c_stop | ( | void | ) |
Terminates the data transfer and releases the I2C bus
void |
unsigned char i2c_write | ( | unsigned char | data | ) |
Send one byte to I2C device
data | byte to be transfered |
0 | write successful |
1 | write failed |