Files
TX/source/pwr_level.h

65 lines
1.4 KiB
C
Raw Permalink Normal View History

/*
* pwr_level.h
*
* Created on: Jun 30, 2022
* Author: Keith.Lloyd
*/
#ifndef PWR_LEVEL_H_
#define PWR_LEVEL_H_
#include <arm_math.h>
//#define MAX_POWER 4
#define PL1_50MA 1 // for single frequency when dual frequency 1/2 each per level
#define PL2_150MA 2
#define PL3_400MA 3
#define PL4_1AMP 4
#define MIN_BCAST_PWR 0
#define MAX_BCAST_PWR 4
#define RESTRICTED 3
#define RESTRICT_CLAMP_FRQ 1170 //1KHz
//#define MAX_CLAMP_VOLTAGE 80.0f
#define MAX_POWER_TARGET_LF 10.0f // < 45kHz
#define MAX_POWER_TARGET_VLF 8.0f // < 800Hz (keep vibrations low)
#define MAX_POWER_TARGET_HF 1.0f // >= 45kHz
#define CLAMP_REGULATE_DELAY 250 // milliseconds
typedef enum {
RS_STOP = 0, //Not regulating
RS_START, //Startup
RS_RUN, //run regulation algorithm
RS_MAINTAIN //regulation has finished. either hit requestedCurrent or didn't
}REG_STATE_t;
typedef struct {
REG_STATE_t state;
float32_t requestedCurrent;
float32_t maxVoltage;
float32_t maxCurrent;
float32_t maxPower;
bool targetCurrentReached; //regulation complete, target acheived
}REGULATE_t;
void setTestPot(void);
void doClampPower(void);
void inc_pwr(void);
void dec_pwr(void);
void Increase_BC_PWR(void);
void Decrease_BC_PWR(void);
void Request_Current_Change(void);
void Get_Clamp_Value(void);
void Adjust_Pot_Val(void);
uint8_t Get_BC_Alk_Value(void);
void Check_New_Pot_Volts();
float Requested_Current(uint8_t Battery_Type);
#endif /* PWR_LEVEL_H_ */