diff options
-rwxr-xr-x | drivers/avr/i2c_master.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/avr/i2c_master.c b/drivers/avr/i2c_master.c index 0db949db4..ba6d0d158 100755 --- a/drivers/avr/i2c_master.c +++ b/drivers/avr/i2c_master.c @@ -18,6 +18,18 @@ void i2c_init(void) { TWSR = 0; /* no prescaler */ TWBR = (uint8_t)TWBR_val; + + #ifdef __AVR_ATmega32A__ + // set pull-up resistors on I2C bus pins + PORTC |= 0b11; + + // enable TWI (two-wire interface) + TWCR |= (1 << TWEN); + + // enable TWI interrupt and slave address ACK + TWCR |= (1 << TWIE); + TWCR |= (1 << TWEA); + #endif } i2c_status_t i2c_start(uint8_t address, uint16_t timeout) { |