/* I2C Echo Example */ #include "../I2CSlave/I2CSlave.h" #define I2C_ADDR 0x20 volatile uint8_t data; volatile uint8_t final; void I2C_received(uint8_t received_data) { data = received_data; } void I2C_requested() { I2C_transmitByte(data); } void I2C_challenge() { I2C_transmitByte(data*3); } void setup() { // set received/requested callbacks I2C_setCallbacks(I2C_received, I2C_requested); // init I2C I2C_init(I2C_ADDR); // init output gpio DDRB = 0b00000001; } int main() { setup(); // Main program loop while(1) { if(data != 4) { I2C_challenge(); } else { //PORTB |= 1<<1; data = 2; I2C_requested(); } } }