This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Concerto - F28M35H52C - ARM processor - I2C in Master Mode - Interrupt driven case

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