소스 검색

Workarounds for testing the I2C commands for both the GET Battery Measurement and SET Charging/Discharging Current

namrota ghosh 7 달 전
부모
커밋
ed16848217
2개의 변경된 파일6개의 추가작업 그리고 16개의 파일을 삭제
  1. 6 4
      main.c
  2. 0 12
      src/config.h

+ 6 - 4
main.c

@@ -25,6 +25,7 @@ void I2C_1_INST_IRQHandler(void)
     switch (DL_I2C_getPendingInterrupt(I2C_1_INST)) 
     {   
         case DL_I2C_IIDX_CONTROLLER_START:
+        
             break;
 
         case DL_I2C_IIDX_CONTROLLER_RXFIFO_TRIGGER:
@@ -42,7 +43,6 @@ void I2C_1_INST_IRQHandler(void)
             }
            
             if(rxPacket.rxCount >= rxPacket.rxLen){
-                //rxPacket.rxComplete= true;
                 DL_I2C_enableInterrupt(I2C_1_INST, DL_I2C_INTERRUPT_CONTROLLER_STOP);
                 rxPacket.rxComplete= true;
             }
@@ -51,8 +51,8 @@ void I2C_1_INST_IRQHandler(void)
         case DL_I2C_IIDX_CONTROLLER_TXFIFO_TRIGGER:
             /* Fill TX FIFO with bytes to send */
             mcuSendCommand = true;
-            DL_I2C_fillControllerTXFIFO(I2C_1_INST, (uint8_t *)&txPacket.txBuffer[0], 1);      
-            txPacket.txComplete= true;   
+            DL_I2C_fillControllerTXFIFO(I2C_1_INST, (uint8_t *)&txPacket.txBuffer[0], 1); 
+            txPacket.txComplete= true; 
             break;
 
         case DL_I2C_IIDX_CONTROLLER_STOP:
@@ -136,13 +136,15 @@ int main(void)
             //Reading battery state:
             Battery_StateCondition(slot_id);
             printf("Battery State: %d\n", battery_data[slot_id].battery_state);
+            
             //If target received battery limits from Pi then start charging:       
             if(battery_data[slot_id].batteryLimitReceived){
                 printf("Battery Limits: Slot: %d, Max Voltage:%u, Min Voltage:%u, "
                 "Cutoff Current: %u, Capacitance:%u, Charge Fraction:%u, Cycle Number: %u\n", slot_id, battery_data[slot_id].max_voltage,
                 battery_data[slot_id].min_voltage, battery_data[slot_id].cut_off_current,
                 battery_data[slot_id].capacitance, battery_data[slot_id].charge_fraction, battery_data[slot_id].cycle_number);
-                CC_CV_ControlCharging(slot_id, 50);
+                //CC_CV_ControlCharging(slot_id, 100);
+                controller_SetCurrent(0x48, slot_id, 50);
                 
             }
      

+ 0 - 12
src/config.h

@@ -24,18 +24,6 @@ typedef struct{
      bool rxComplete;
 }rx_Packet;
 
-/* Indicates status of I2C */
-enum I2cControllerStatus {
-    I2C_STATUS_IDLE = 0,
-    I2C_STATUS_TX_STARTED,
-    I2C_STATUS_TX_INPROGRESS,
-    I2C_STATUS_TX_COMPLETE,
-    I2C_STATUS_RX_STARTED,
-    I2C_STATUS_RX_INPROGRESS,
-    I2C_STATUS_RX_COMPLETE,
-    I2C_STATUS_ERROR,
-} gI2cControllerStatus;
-
 // Global variables declared in i2c_hal.c
 extern tx_Packet txPacket;
 extern rx_Packet rxPacket;