I'm confused...
I2cStateMachine.slaveAddress = MCP23017_BUS_ADDRESS_AZ;
I2cStateMachine.registerAddress = MCP23017_GPIOA_DIR_REG;
memset(&I2cStateMachine.dataBytes, 0, 2);
I2cStateMachine.dataSize = 2;
IntTrigger(INT_I2C0);
while (I2cStateMachine.currentState != I2C_STATE_STOP);
I2cStateMachine.currentState = I2C_STATE_IDLE;
int i = 0;
while (i < 1000000) { i++;}
When I run the following code, I get a total of five interrupts generated by the I2C master. The first is 0x00 which I assume is a result of the call to IntTrigger(INT_I2C0) used to initiate the transaction. I am sending two bytes. The first is the register address of the remote device and the second byte is the data to write to that register. My interrupt handler is called four more times, all with the interrupt bit 0x0001
#define I2C_MASTER_INT_DATA 0x00000001 // Data Interrupt <=== from the I2c.h file in driverlib.
I only expected two interrupts, one at the completion of each byte. What am I missing??