I am using interface I2C0 for communicate with RTC DS1307.
I'm having trouble with I2C_transfer().
When you call the function aprenta one stackoverflow problem in HWI.
The code is presented below.
s
Void TaskRTC() { UInt peripheralNum = 0; I2C_Handle i2c; I2C_Params i2cParams; I2C_Transaction i2cTransaction; UChar writeBuffer[2]; UChar readBuffer[8]; Bool transferOK; I2C_Params_init(&i2cParams); i2c = I2C_open(0, &i2cParams); if (i2c == NULL) { system.abort("ERROR!!\n"); } i2cTransaction.slaveAddress = 0x68; // set second writeBuffer[0]= 0x00; i2cTransaction.writeBuf = writeBuffer; i2cTransaction.writeCount = 1; i2cTransaction.readBuf = readBuffer; i2cTransaction.readCount = 8; //Comunica com o dispositivo transferOK = I2C_transfer(i2c, &i2cTransaction); if (!transferOK) { system.abort("ERROR!") I2C_close(i2c); } } int main(void) { Board_initGeneral(); Board_initGPIO(); Board_initI2C(); GPIO_write(Board_LED0, Board_LED_OFF); BIOS_start(); return (0); }