Hello,
Help please !
I've got a problem to run a program that implies I2C in Master Mode in Interrupt Driven case with Peripheral Driver Library fonctions.
/*------Starts the initialization sequence------*/
IntRegister(INT_I2C0, I2C0Master);
IntPrioritySet(INT_I2C0, 4);
IntEnable(INT_I2C0);
I2CMasterEnable(I2C0_MASTER_BASE);
I2CMasterInitExpClk(I2C0_MASTER_BASE, SysCtlClockGet( SYSTEM_CLOCK_SPEED), false);
I2CIntRegister(INT_I2C0, I2C0Master);
I2CMasterIntEnable(INT_I2C0);
I2CMasterSlaveAddrSet(I2C0_MASTER_BASE, 0x48, false);
IntMasterEnable();
/*--------End of initialisation-------*/
// Place the first data to be sent in the data register
I2CMasterDataPut(I2C0_MASTER_BASE, g_cBuffer[0]);
// Initiate send of data from the master.
I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_SINGLE_SEND);
None of the "init" fonctions set I2CMIMR bit in the I2C_MASTER_BASE register, so I've added the following code:
Sorry for for this code
unsigned int *p = (unsigned int *)(I2C0_MASTER_BASE);
*(p+4) = 1;
Now, it works perfectly.
Which is my mistake ?
Thanks in advance.
Henri