فهرست منبع

Battery file updtaed

namrota ghosh 6 ماه پیش
والد
کامیت
16ad6ebe9a
2فایلهای تغییر یافته به همراه88 افزوده شده و 2 حذف شده
  1. 70 1
      src/battery_data/battery.c
  2. 18 1
      src/battery_data/battery.h

+ 70 - 1
src/battery_data/battery.c

@@ -1,14 +1,67 @@
 #include "battery.h"
 #include "src/config.h"
 #include <stdio.h>
-
+#include "ti_msp_dl_config.h"
 BatteryInfo battery_data[NUM_SLOTS];
 
 
 
 
 //Initialize battery struct
+
 void Battery_Init(){
+    //Charging pins:
+    //slot 0
+    battery_data[0].charging_port= GPIO_Battery_Charging_PIN_0_PORT;
+    battery_data[0].charging_pin= GPIO_Battery_Charging_PIN_0_PIN;
+    //slot 1
+    battery_data[1].charging_port= GPIO_Battery_Charging_PIN_1_PORT;
+    battery_data[1].charging_pin= GPIO_Battery_Charging_PIN_1_PIN;
+    //slot 2
+    battery_data[2].charging_port= GPIO_Battery_Charging_PIN_2_PORT;
+    battery_data[2].charging_pin= GPIO_Battery_Charging_PIN_2_PIN;
+    //slot 3
+    battery_data[3].charging_port= GPIO_Battery_Charging_PIN_3_PORT;
+    battery_data[3].charging_pin= GPIO_Battery_Charging_PIN_3_PIN;
+    //slot 4
+    /*battery_data[4].charging_port= GPIO_Battery_Charging_PIN_4_PORT;
+    battery_data[4].charging_pin= GPIO_Battery_Charging_PIN_4_PIN;
+    //slot 5
+    battery_data[5].charging_port= GPIO_Battery_Charging_PIN_5_PORT;
+    battery_data[5].charging_pin= GPIO_Battery_Charging_PIN_5_PIN;
+    //slot 6
+    battery_data[6].charging_port= GPIO_Battery_Charging_PIN_6_PORT;
+    battery_data[6].charging_pin= GPIO_Battery_Charging_PIN_6_PIN;
+    //slot 7
+    battery_data[7].charging_port= GPIO_Battery_Charging_PIN_7_PORT;
+    battery_data[7].charging_pin= GPIO_Battery_Charging_PIN_7_PIN;
+*/
+    //Discharging pins:
+    //slot 0
+    battery_data[0].discharging_port= GPIO_Battery_Discharging_PIN_L0_PORT;
+    battery_data[0].discharging_pin= GPIO_Battery_Discharging_PIN_L0_PIN;
+    //slot 1
+    battery_data[1].discharging_port= GPIO_Battery_Discharging_PIN_L1_PORT;
+    battery_data[1].discharging_pin= GPIO_Battery_Discharging_PIN_L1_PIN;
+    //slot 2
+    battery_data[2].discharging_port= GPIO_Battery_Discharging_PIN_L2_PORT;
+    battery_data[2].discharging_pin= GPIO_Battery_Discharging_PIN_L2_PIN;
+    //slot 3
+    battery_data[3].discharging_port= GPIO_Battery_Discharging_PIN_L3_PORT;
+    battery_data[3].discharging_pin= GPIO_Battery_Discharging_PIN_L3_PIN;
+    //slot 4
+    /*battery_data[4].discharging_port= GPIO_Battery_Discharging_PIN_L4_PORT;
+    battery_data[4].discharging_pin= GPIO_Battery_Discharging_PIN_L4_PIN;
+    //slot 5
+    battery_data[5].discharging_port= GPIO_Battery_Discharging_PIN_L5_PORT;
+    battery_data[5].discharging_pin= GPIO_Battery_Discharging_PIN_L5_PIN;
+    //slot 6
+    battery_data[6].discharging_port= GPIO_Battery_Discharging_PIN_L6_PORT;
+    battery_data[6].discharging_pin= GPIO_Battery_Discharging_PIN_L6_PIN;
+    //slot 7
+    battery_data[7].discharging_port= GPIO_Battery_Discharging_PIN_L7_PORT;
+    battery_data[7].discharging_pin= GPIO_Battery_Discharging_PIN_L7_PIN;
+*/
     for(uint8_t i=0; i<NUM_SLOTS; i++){
         battery_data[i].slot_id = i;
         battery_data[i].pwm_value= 0;
@@ -41,4 +94,20 @@ void Battery_StateCondition(uint8_t slot_id){
         battery_data[slot_id].battery_state = STATE_MEASUREMENT_IN_PROGRESS;
     }
 }
+//Enable & Disable Charging:
+void Battery_enableCharging(uint8_t slot_id){
+    DL_GPIO_setPins(battery_data[slot_id].charging_port, battery_data[slot_id].charging_pin);
+}
+
+void Battery_disableCharging(uint8_t slot_id){
+    DL_GPIO_clearPins(battery_data[slot_id].charging_port, battery_data[slot_id].charging_pin);
+}
+
+//Enable & Disable Diacharging:
+void Battery_enableDischarging(uint8_t slot_id){
+    DL_GPIO_setPins(battery_data[slot_id].discharging_port, battery_data[slot_id].discharging_pin);
+}
 
+void Battery_disableDischarging(uint8_t slot_id){
+    DL_GPIO_clearPins(battery_data[slot_id].discharging_port, battery_data[slot_id].discharging_pin);
+}

+ 18 - 1
src/battery_data/battery.h

@@ -2,13 +2,14 @@
 #include <stdint.h>
 #include <stdbool.h>
 #include "src/config.h"
+#include "ti/devices/msp/peripherals/hw_gpio.h"
 #ifndef BATTERY_H
 #define BATTERY_H
 #define INITIAL_PWM_VALUE (0)
 #define PWM_INCREMENT_VALUE (1)
 #define PWM_DECREMENT_VALUE (1)
 #define PWM_MAX_VALUE (1000)
-#define NUM_SLOTS (1)
+#define NUM_SLOTS (4)
 
 //Variables to read all the battery measurements from all the slots
 extern volatile bool scanInProgress;
@@ -80,10 +81,26 @@ typedef struct{
     uint8_t previous_cycle_number;
     BatteryChargingState battery_charging_state;
     bool batteryLimitReceived;
+    //Charging and Discharging Port and Pins for all the slots
+    GPIO_Regs *charging_port;
+    uint32_t charging_pin;
+    GPIO_Regs *discharging_port;
+    uint32_t discharging_pin;
 } BatteryInfo;
 
 extern BatteryInfo battery_data[NUM_SLOTS];
+//initialize battery
 void Battery_Init();
+
+//read battery state machine
 void Battery_StateCondition(uint8_t slot_id);
 
+//enable and disbale charging
+void Battery_enableCharging(uint8_t slot_id);
+void Battery_disableCharging(uint8_t slot_id);
+
+//enable and disable discharging
+void Battery_enableDischarging(uint8_t slot_id);
+void Battery_disableDischarging(uint8_t slot_id);
+
 #endif