Fix i2c multiple write bug, as reported by Ron Segal: https://sourceforge.net/p/contiki/mailman/message/34633862/

This commit is contained in:
Andreas Urke 2016-08-09 00:25:37 +02:00
parent 956497a672
commit e1359519ab

View file

@ -256,13 +256,12 @@ board_i2c_write_read(uint8_t *wdata, uint8_t wlen, uint8_t *rdata, uint8_t rlen)
for(i = 1; i < wlen && success; i++) { for(i = 1; i < wlen && success; i++) {
/* Write next byte */ /* Write next byte */
ti_lib_i2c_master_data_put(I2C0_BASE, wdata[i]); ti_lib_i2c_master_data_put(I2C0_BASE, wdata[i]);
if(i < wlen - 1) {
/* Clear START */ /* Clear START */
ti_lib_i2c_master_control(I2C0_BASE, I2C_MASTER_CMD_BURST_SEND_CONT); ti_lib_i2c_master_control(I2C0_BASE, I2C_MASTER_CMD_BURST_SEND_CONT);
while(ti_lib_i2c_master_busy(I2C0_BASE)); while(ti_lib_i2c_master_busy(I2C0_BASE));
success = i2c_status(); success = i2c_status();
} }
}
if(!success) { if(!success) {
return false; return false;
} }