|
|
@@ -33,14 +33,17 @@ void I2C_1_INST_IRQHandler(void)
|
|
|
while(DL_I2C_isControllerRXFIFOEmpty(I2C_1_INST) != true) {
|
|
|
if(rxPacket.rxCount < rxPacket.rxLen){
|
|
|
//Get byte from the I2C RX FIFO of the target
|
|
|
- rxPacket.rxBuffer[rxPacket.rxCount]= DL_I2C_receiveControllerData(I2C_1_INST);
|
|
|
- rxPacket.rxCount++;
|
|
|
+ rxPacket.rxBuffer[rxPacket.rxCount++]= DL_I2C_receiveControllerData(I2C_1_INST);
|
|
|
+ //rxPacket.rxCount++;
|
|
|
}else{
|
|
|
DL_I2C_receiveControllerData(I2C_1_INST);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(rxPacket.rxCount >= rxPacket.rxLen){
|
|
|
+ //rxPacket.rxComplete= true;
|
|
|
+ DL_I2C_enableInterrupt(I2C_1_INST, DL_I2C_INTERRUPT_CONTROLLER_STOP);
|
|
|
rxPacket.rxComplete= true;
|
|
|
}
|
|
|
break;
|
|
|
@@ -48,29 +51,21 @@ void I2C_1_INST_IRQHandler(void)
|
|
|
case DL_I2C_IIDX_CONTROLLER_TXFIFO_TRIGGER:
|
|
|
/* Fill TX FIFO with bytes to send */
|
|
|
mcuSendCommand = true;
|
|
|
- txPacket.txBuffer[0] = (0<<4) | (CMD_GET_MEASUREMENT & 0x0F);
|
|
|
- DL_I2C_fillControllerTXFIFO(I2C_1_INST, (uint8_t *)&txPacket.txBuffer[0], 1);
|
|
|
- /*if(!txCommandSent){
|
|
|
- txPacket.txBuffer[0]= (0<<4) | (CMD_GET_MEASUREMENT & 0x0F);
|
|
|
- DL_I2C_fillControllerTXFIFO(I2C_1_INST, (uint8_t *)&txPacket.txBuffer[0], 1);
|
|
|
- txPacket.txComplete= true;
|
|
|
- mcuSendCommand = true;
|
|
|
- txCommandSent= true;
|
|
|
- }*/
|
|
|
- /*else{
|
|
|
- while (DL_I2C_getControllerStatus(I2C_1_INST) & DL_I2C_CONTROLLER_STATUS_BUSY);
|
|
|
- DL_I2C_startControllerTransfer(I2C_1_INST, 0x49, DL_I2C_CONTROLLER_DIRECTION_RX, 8);
|
|
|
- txCommandSent= false;
|
|
|
- } */
|
|
|
+ txPacket.txBuffer[0] = (0<<4) | (CMD_GET_MEASUREMENT & 0x0F);
|
|
|
+ DL_I2C_fillControllerTXFIFO(I2C_1_INST, (uint8_t *)&txPacket.txBuffer[0], 1);
|
|
|
+ txPacket.txComplete= true;
|
|
|
break;
|
|
|
|
|
|
case DL_I2C_IIDX_CONTROLLER_STOP:
|
|
|
mcuSendCommand = true;
|
|
|
rxPacket.rxComplete= true;
|
|
|
txPacket.txComplete= true;
|
|
|
+ DL_I2C_flushControllerRXFIFO(I2C_INST);
|
|
|
+ DL_I2C_flushControllerTXFIFO(I2C_INST);
|
|
|
break;
|
|
|
|
|
|
case DL_I2C_IIDX_CONTROLLER_ARBITRATION_LOST:
|
|
|
+ break;
|
|
|
case DL_I2C_IIDX_CONTROLLER_NACK:
|
|
|
break;
|
|
|
default:
|