How does one decide which versions (polled or interrupt) of an I2C library to use? I know that "polled" means that the processor is tied up handling the I2C comms and excludes everything else going on.
What other factors are there to consider?
I have noticed that when I use the AVRlib NI(non-interrupt) version of I2C that unless I enclose these functions with a cli()/sei() pair that I get occasional data errors. Seems to happen when handling the RX info, where there is a call to i2cMasterSendNI followed by a call to i2cMaster ReceiveNI.
cli(); // needed to stop receive data errors?? // reset register pointer at RTC_ADDR i2cMasterSendNI(RTC_ADDR, 1, 0x00); // get data i2cMasterReceiveNI(RTC_ADDR, 7, rx_data); sei();
Thank you for your comments.