Files
birdptz/helpers_i2c.c
2021-09-17 13:38:33 -04:00

32 lines
812 B
C

#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;
};