#define TWI0_BAUD(F_SCL, T_RISE) \ ((((((float)10000000 / (float)F_SCL)) - 10 - ((float)10000000 * T_RISE / 1000000))) / 2) #include "helpers_i2c.h" void i2c_init(void) { PORTMUX.TWISPIROUTEA = 0x23; TWI0.CTRLA = 0x14; //Debug Run TWI0.DBGCTRL = 0x00; //Master Baud Rate Control TWI0.MBAUD = (uint8_t)TWI0_BAUD(100000, 0); //RIEN disabled; WIEN disabled; QCEN disabled; TIMEOUT DISABLED; SMEN disabled; ENABLE enabled; TWI0.MCTRLA = 0x01; //RIF disabled; WIF disabled; CLKHOLD disabled; ARBLOST disabled; BUSERR disabled; BUSSTATE UNKNOWN; TWI0.MSTATUS = 0x00; //Master Address TWI0.MADDR = 0x00; //FLUSH disabled; ACKACT ACK; MCMD NOACT; TWI0.MCTRLB = 0x00; //Master Data TWI0.MDATA = 0x00; };