1) I am using MSP430f5340. I am using three peripherals viz. USCI_B0(I2C mode), TIMER0_A1, USCI_A0(UART). The last two are interrupt enabled. The timer module is used in continuous mode with a time of 58ms. Inside the timer ISR data form 3 channels of ADS1115 is written and read via I2C by polling TX and RXIFG flags. I observed that when the timer interrupt and the UART interrupt clashes, bytes from UART are missed. Even if I removed the I2C part in the Timer ISR and replace it with a delay of same amount of time as required by write+read for 3 channels on I2C, I still get missed bytes at UART. What is the reason behind it?
2) I need to reinitialize the I2C module prior to each channel acquisition(write config and then read new channel data). Why is it so?