97 lines
1.3 KiB
C
97 lines
1.3 KiB
C
#include "device_task.h"
|
|
#include "drv_relay.h"
|
|
#include "drv_fan.h"
|
|
#include "drv_power.h"
|
|
#include "drv_at24cxx.h"
|
|
#include "drv_tick.h"
|
|
|
|
//SemaphoreHandle_t bat_single_Mutex; // 互斥锁句柄
|
|
|
|
double voltage_pwr;
|
|
double voltage_buck_in;
|
|
double voltage_buck_out;
|
|
double voltage_bat;
|
|
double voltage_current;
|
|
double voltage_temp;
|
|
|
|
double voltage_bat_sv[24];
|
|
|
|
uint16_t relay_state1 = 0;
|
|
uint16_t relay_state2 = 0;
|
|
|
|
uint16_t power_pwm = 0;
|
|
uint16_t pwm_state = 0;
|
|
|
|
double target_voltage = 5;
|
|
|
|
double p = 0,i = 0;
|
|
|
|
//设备更新线程
|
|
void StartDeviceTask(void * argument)
|
|
{
|
|
relay_init();
|
|
fan_init();
|
|
adc_init();
|
|
power_init();
|
|
|
|
AT24C_Init(&hi2c4);
|
|
|
|
tick_init();
|
|
|
|
for(;;)
|
|
{
|
|
osDelay(5);
|
|
|
|
//执行传感器采集工作
|
|
|
|
voltage_pwr = get_voltage(&power_voltage);
|
|
voltage_buck_in = get_voltage(&buck_in_voltage);
|
|
voltage_buck_out = get_voltage(&buck_out_voltage);
|
|
voltage_bat = get_voltage(&bat_voltage);
|
|
voltage_current = get_voltage(&bat_current);
|
|
voltage_temp = get_voltage(&bat_temper);
|
|
|
|
|
|
|
|
|
|
|
|
// if(pwm_state == 0)
|
|
// {
|
|
// power_pwm += 100;
|
|
// if(power_pwm >= 10000)
|
|
// {
|
|
// power_pwm = 10000;
|
|
// pwm_state = 1;
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// power_pwm -= 100;
|
|
// if(power_pwm <= 200)
|
|
// {
|
|
// power_pwm = 200;
|
|
// pwm_state = 0;
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
//power_set(power_pwm);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|