Fixed issues related to Temperature and EC

This commit is contained in:
2026-08-11 11:25:47 +01:00
parent ebb76da3b0
commit 1b19d8035b
12 changed files with 12292 additions and 12821 deletions
+33 -19
View File
@@ -150,6 +150,15 @@ extern "C" {
#define AD5934_GAIN_FACTOR_1K 1000.0f #define AD5934_GAIN_FACTOR_1K 1000.0f
#define AD5934_GAIN_FACTOR_10K 10000.0f #define AD5934_GAIN_FACTOR_10K 10000.0f
#define AD5934_EC_IN_SERIES_RESISTOR 100.0f
#define AD5934_EC_10MS 0.01f // Ref 100R
#define AD5934_EC_1MS 0.001f // Ref 1K
#define AD5934_EC_0_1MS 0.0001f // Ref 10k
#define AD5934_DRIFT_PT100 2.12f
#define AD5934_DRIFT_PT1000 0.22f
#define AD5934_GAIN_FACTOR_1413US 1413.0f #define AD5934_GAIN_FACTOR_1413US 1413.0f
#define AD5934_GAIN_FACTOR_12880US 12880.0f #define AD5934_GAIN_FACTOR_12880US 12880.0f
@@ -165,11 +174,19 @@ extern "C" {
#define AD5934_EC_ALPHA_PER_C 0.02f #define AD5934_EC_ALPHA_PER_C 0.02f
#define AD5934_EC_TEMP_REF_C 25.0f #define AD5934_EC_TEMP_REF_C 25.0f
#define AD5934_EC_1413US_PT100_DEFAULT 3111 // magnitude
#define AD5934_EC_1413US_PT1000_DEFAULT 2970 // magnitude
//Mux Set to Read... //Mux Set to Read...
#define AD5934_ID_RTD 0 #define AD5934_ID_RTD 0
#define AD5934_ID_EC 1 #define AD5934_ID_EC 1
#define AD5934_ID_REF 2 #define AD5934_ID_REF_100R_LOWGAIN 2
#define AD5934_ID_REF_100R_MIDGAIN 3
#define AD5934_ID_REF_100R_HIGHGAIN 4
#define AD5934_ID_REF_1K_MIDGAIN 5
#define AD5934_ID_REF_1K_HIGHGAIN 6
#define AD5934_ID_REF_10K_HIGHGAIN 7
/*****************************************************************************/ /*****************************************************************************/
/**************************** Filtering Defines *****************************/ /**************************** Filtering Defines *****************************/
@@ -179,7 +196,7 @@ extern "C" {
#define AD5934_BURST_SIZE 1 // Number of Repeated Sweeps on the same channel before change the Mux #define AD5934_BURST_SIZE 1 // Number of Repeated Sweeps on the same channel before change the Mux
#define AD5934_TRIM_COUNT 0 #define AD5934_TRIM_COUNT 0
#define AD5934_HISTORY_SIZE 8 #define AD5934_HISTORY_SIZE 16
#define AD5934_IIR_ALPHA 0.10f #define AD5934_IIR_ALPHA 0.10f
#define AD5934_REF_FLOAT_SCALE_MIN 1850.0f #define AD5934_REF_FLOAT_SCALE_MIN 1850.0f
@@ -195,12 +212,12 @@ extern "C" {
#define AD5934_RTD_OUT_SCALE_MAX 800 #define AD5934_RTD_OUT_SCALE_MAX 800
#define AD5934_EC5_FLOAT_SCALE_MIN 0.0f #define AD5934_EC5_FLOAT_SCALE_MIN 0.0f
#define AD5934_EC5_FLOAT_SCALE_MAX 20500.0f #define AD5934_EC5_FLOAT_SCALE_MAX 7000.0f
#define AD5934_EC5_OUT_SCALE_MIN 0 #define AD5934_EC5_OUT_SCALE_MIN 0
#define AD5934_EC5_OUT_SCALE_MAX 4095 #define AD5934_EC5_OUT_SCALE_MAX 4095
#define AD5934_EC10_FLOAT_SCALE_MIN 0.0f #define AD5934_EC10_FLOAT_SCALE_MIN 0.0f
#define AD5934_EC10_FLOAT_SCALE_MAX 15000.0f #define AD5934_EC10_FLOAT_SCALE_MAX 14000.0f
#define AD5934_EC10_OUT_SCALE_MIN 0 #define AD5934_EC10_OUT_SCALE_MIN 0
#define AD5934_EC10_OUT_SCALE_MAX 4095 #define AD5934_EC10_OUT_SCALE_MAX 4095
@@ -378,8 +395,6 @@ static const uint16_t AD5934_Scale_Out_Max[AD5934_CH_MAX] = {
extern I2C_HandleTypeDef hi2c2; extern I2C_HandleTypeDef hi2c2;
extern float reference_resistor, temperature_RTD, thermal_compensaded_EC;
extern volatile AD5934_State_t ad5934_state; extern volatile AD5934_State_t ad5934_state;
extern volatile uint32_t g_ms_counter; // Increment each 1ms Timer extern volatile uint32_t g_ms_counter; // Increment each 1ms Timer
extern volatile uint32_t state_timer; extern volatile uint32_t state_timer;
@@ -391,10 +406,9 @@ extern uint8_t current_ec_mux;
extern uint8_t current_rtd_mux; extern uint8_t current_rtd_mux;
extern uint8_t current_ref_mux; extern uint8_t current_ref_mux;
extern AD5934_filter_t g_rtd_filter, g_ec_filter, g_ref_filter; extern AD5934_filter_t g_rtd_filter, g_ec_filter, g_ref_100R_LowGain_filter, g_ref_100R_MidGain_filter, g_ref_100R_HighGain_filter, g_ref_1K_MidGain_filter, g_ref_1K_HighGain_filter, g_ref_10K_HighGain_filter;
extern int16_t rtd_now, ref_now, ec_now; extern uint8_t is_startup;
extern int16_t rtd_now_i, ref_now_i, ec_now_i;
/*****************************************************************************/ /*****************************************************************************/
/************************ Functions Declarations *****************************/ /************************ Functions Declarations *****************************/
@@ -415,7 +429,7 @@ void AD5934_StopSweep(void);
float AD5934_Get_Ref_Resistance(void); float AD5934_Get_Ref_Resistance(void);
float AD5934_Calculate_Temperature(float mag_ref, float mag_dut); float AD5934_Calculate_Temperature(float mag_ref_pt100, float mag_ref_pt1000, float mag_dut);
float AD5934_EC_Compensate_Magnitude_To_25C(float mag_dut, float temperature_dut); float AD5934_EC_Compensate_Magnitude_To_25C(float mag_dut, float temperature_dut);
@@ -425,6 +439,8 @@ float AD5934_GetMagnitude(void);
float AD5934_GetImpedance(float mag_ref, float mag_dut); float AD5934_GetImpedance(float mag_ref, float mag_dut);
float AD5934_GetAdmittance(float mag_ref_10mS_MidGain, float mag_ref_1mS_MidGain, float mag_ref_1mS_HighGain, float mag_ref_0_1mS_HighGain, float mag_dut);
uint32_t AD5934_Get_Real_Imag_Numbers(void); uint32_t AD5934_Get_Real_Imag_Numbers(void);
uint16_t AD5934_Compress_To_IntScale(float value, uint8_t scale); uint16_t AD5934_Compress_To_IntScale(float value, uint8_t scale);
@@ -449,21 +465,19 @@ void AD5934_Process_Sample(AD5934_filter_t *ch, float raw);
void AD5934_RTD_NewSample(float raw); void AD5934_RTD_NewSample(float raw);
void AD5934_RTD_Real_NewSample(float raw);
void AD5934_RTD_Imag_NewSample(float raw);
void AD5934_EC_NewSample(float raw); void AD5934_EC_NewSample(float raw);
void AD5934_EC_Real_NewSample(float raw); void AD5934_Reference_100R_LowGain_NewSample(float raw);
void AD5934_EC_Imag_NewSample(float raw); void AD5934_Reference_100R_MidGain_NewSample(float raw);
void AD5934_Reference_NewSample(float raw); void AD5934_Reference_100R_HighGain_NewSample(float raw);
void AD5934_Reference_Real_NewSample(float raw); void AD5934_Reference_1K_MidGain_NewSample(float raw);
void AD5934_Reference_Imag_NewSample(float raw); void AD5934_Reference_1K_HighGain_NewSample(float raw);
void AD5934_Reference_10K_HighGain_NewSample(float raw);
void ADG715_SetRegisterValue(char value); void ADG715_SetRegisterValue(char value);
+128 -36
View File
@@ -15,8 +15,6 @@ volatile AD5934_State_t ad5934_state = AD5934_IDLE;
volatile uint32_t state_timer = 0; volatile uint32_t state_timer = 0;
volatile uint32_t g_ms_counter = 0; /* Incrementado a cada 1ms no Timer */ volatile uint32_t g_ms_counter = 0; /* Incrementado a cada 1ms no Timer */
float reference_resistor = 0, temperature_RTD = 0, thermal_compensaded_EC = 0;
uint8_t current_mux_channel = 0; uint8_t current_mux_channel = 0;
uint8_t current_hw_mux_connection = AD5934_CH_REF100R_LOW_GAIN; // Connection uint8_t current_hw_mux_connection = AD5934_CH_REF100R_LOW_GAIN; // Connection
uint8_t current_ec_mux = AD5934_CH_EC_MID_GAIN; uint8_t current_ec_mux = AD5934_CH_EC_MID_GAIN;
@@ -27,13 +25,20 @@ uint8_t sweep_count = 0; /* Conta quantos sweeps foram feitos no canal atual (0
AD5934_filter_t g_rtd_filter = {0}; AD5934_filter_t g_rtd_filter = {0};
AD5934_filter_t g_ec_filter = {0}; AD5934_filter_t g_ec_filter = {0};
AD5934_filter_t g_ref_filter = {0}; AD5934_filter_t g_ref_100R_LowGain_filter = {0};
AD5934_filter_t g_ref_100R_MidGain_filter = {0};
AD5934_filter_t g_ref_100R_HighGain_filter = {0};
AD5934_filter_t g_ref_1K_MidGain_filter = {0};
AD5934_filter_t g_ref_1K_HighGain_filter = {0};
AD5934_filter_t g_ref_10K_HighGain_filter = {0};
int16_t rtd_now, ref_now, ec_now; int16_t rtd_now, ref_now, ec_now;
int16_t rtd_now_i, ref_now_i, ec_now_i; int16_t rtd_now_i, ref_now_i, ec_now_i;
uint8_t is_new_channel = 1; uint8_t is_new_channel = 1;
uint8_t is_startup=1;
/****************************************************************************** /******************************************************************************
* @brief Set an AD5934 internal register value. * @brief Set an AD5934 internal register value.
* *
@@ -165,7 +170,7 @@ void AD5934_Init(void)
AD5934_SetRegisterValue(AD5934_NR_INCR_REG_LB, AD5934_STEP_FREQ_0, 2); AD5934_SetRegisterValue(AD5934_NR_INCR_REG_LB, AD5934_STEP_FREQ_0, 2);
// Set 128 Settling Time // Set 128 Settling Time
AD5934_SetRegisterValue(AD5934_NR_SETTLE_REG_LB, AD5934_SETTLING_TIME_64, 2); AD5934_SetRegisterValue(AD5934_NR_SETTLE_REG_LB, AD5934_SETTLING_TIME_90, 2);
} }
@@ -232,20 +237,24 @@ void AD5934_StopSweep(void)
* *
* @return Temperature in Celsius. * @return Temperature in Celsius.
******************************************************************************/ ******************************************************************************/
float AD5934_Calculate_Temperature(float mag_ref, float mag_dut) float AD5934_Calculate_Temperature(float mag_ref_pt100, float mag_ref_pt1000, float mag_dut)
{ {
uint8_t ch_ref; uint8_t ch_ref;
float gain_factor, impedance_dut, temperature; float gain_factor, temperature, drift, mag_ref;
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) == GPIO_PIN_SET) // OFF = PT1000, ON = PT100, PA7 has internal pull-up and switch connects to GND if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) == GPIO_PIN_SET) // OFF = PT1000, ON = PT100, PA7 has internal pull-up and switch connects to GND
{ {
ch_ref = AD5934_CH_RTD_LOW_GAIN; //PT100 ch_ref = AD5934_CH_RTD_LOW_GAIN; //PT100
gain_factor = AD5934_GAIN_FACTOR_100R; gain_factor = AD5934_GAIN_FACTOR_100R;
drift = AD5934_DRIFT_PT100;
mag_ref = mag_ref_pt100;
} }
else else
{ {
ch_ref = AD5934_CH_RTD_MID_GAIN; //PT1000 ch_ref = AD5934_CH_RTD_MID_GAIN; //PT1000
gain_factor = AD5934_GAIN_FACTOR_1K; gain_factor = AD5934_GAIN_FACTOR_1K;
drift = AD5934_DRIFT_PT1000;
mag_ref = mag_ref_pt1000;
} }
float ratio_mag = mag_ref / mag_dut; float ratio_mag = mag_ref / mag_dut;
@@ -254,7 +263,8 @@ float AD5934_Calculate_Temperature(float mag_ref, float mag_dut)
/*if(ch_ref==AD5934_CH_REF100R_LOW_GAIN) // only for PT100 /*if(ch_ref==AD5934_CH_REF100R_LOW_GAIN) // only for PT100
impedance_dut = AD5934_Linear_Correction(gain_factor * ratio_mag); impedance_dut = AD5934_Linear_Correction(gain_factor * ratio_mag);
else*/ else*/
impedance_dut = gain_factor * ratio_mag;
float impedance_dut = gain_factor * ratio_mag;
// Calculate impedance ratio with the Reference Resistor // Calculate impedance ratio with the Reference Resistor
float ratio = impedance_dut / gain_factor; float ratio = impedance_dut / gain_factor;
@@ -273,7 +283,7 @@ float AD5934_Calculate_Temperature(float mag_ref, float mag_dut)
temperature = (ratio - 1.0f) / AD5934_RTD_ALPHA; temperature = (ratio - 1.0f) / AD5934_RTD_ALPHA;
} }
return AD5934_Round_Float_Precision(temperature,1); return AD5934_Round_Float_Precision((temperature-drift),2);
} }
@@ -292,7 +302,7 @@ float AD5934_EC_Compensate_Magnitude_To_25C(float mag_dut, float temperature_dut
if (factor < 0.1f) if (factor < 0.1f)
factor = 0.1f; factor = 0.1f;
return (mag_dut / factor); return (AD5934_Round_Float_Precision((mag_dut / (factor)),2));
} }
/** /**
@@ -393,7 +403,45 @@ float AD5934_GetImpedance(float mag_ref, float mag_dut)
return impedance_dut; return impedance_dut;
} }
/******************************************************************************
* @brief Get Real and Imaginary values and calculate Magnitude.
*
* @param: none
*
* @return Magnitude (float).
******************************************************************************/
float AD5934_GetAdmittance(float mag_ref_10mS_MidGain, float mag_ref_1mS_MidGain, float mag_ref_1mS_HighGain, float mag_ref_0_1mS_HighGain, float mag_dut)
{
uint8_t ch_ref;
float mag_ref_Min, mag_ref_Max, res_ref_Min, res_ref_Max;
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_6) == GPIO_PIN_SET) // Hardware Setup: Gain Selection (PA6)
{
ch_ref = AD5934_CH_EC_HIGH_GAIN; // 5mS
mag_ref_Min = mag_ref_0_1mS_HighGain; // Ref 10k
mag_ref_Max = mag_ref_1mS_HighGain; // Ref 1K
res_ref_Min = AD5934_EC_0_1MS;
res_ref_Max = AD5934_EC_1MS;
}
else
{
ch_ref = AD5934_CH_EC_MID_GAIN; //10mS
mag_ref_Min = mag_ref_1mS_MidGain; // Ref 1K
mag_ref_Max = mag_ref_10mS_MidGain; // Ref 100R
res_ref_Min = AD5934_EC_1MS;
res_ref_Max = AD5934_EC_10MS;
}
float gain_factor = (res_ref_Max - res_ref_Min)/(mag_ref_Max - mag_ref_Min);
float offset = mag_ref_Max - (res_ref_Max/gain_factor);
float admittance = (mag_dut - offset) * gain_factor;
float y_cell = admittance / (1 - (AD5934_EC_IN_SERIES_RESISTOR * admittance)); // Resistor in series with EC is 100 Ohms on PCB
return (y_cell*1000000); // in uS
}
/****************************************************************************** /******************************************************************************
* @brief Get Real and Imag values from Magnitude. * @brief Get Real and Imag values from Magnitude.
* *
@@ -531,17 +579,11 @@ void AD5934_Process_System(void)
break; break;
case AD5934_WAIT_MUX: case AD5934_WAIT_MUX:
//if ((g_ms_counter - state_timer) >= AD5934_SYNC_MUX_SETTLING) // Wait until AD715 Mux switch stability
//{
HAL_Delay(15); HAL_Delay(15);
ad5934_state = AD5934_START_CONVERSION; ad5934_state = AD5934_START_CONVERSION;
//}
break; break;
case AD5934_START_CONVERSION: case AD5934_START_CONVERSION:
//state_timer = g_ms_counter; // Starts to count the Burst period for the sweeps
/* DECISÃO DE COMANDO: Novo canal vs Leituras sucessivas */ /* DECISÃO DE COMANDO: Novo canal vs Leituras sucessivas */
if (is_new_channel) // Decision: Channel Switched or Next Sample in the Burst ? if (is_new_channel) // Decision: Channel Switched or Next Sample in the Burst ?
{ {
@@ -554,7 +596,6 @@ void AD5934_Process_System(void)
} }
ad5934_state = AD5934_WAIT_CONVERSION; // Next State ad5934_state = AD5934_WAIT_CONVERSION; // Next State
break; break;
case AD5934_WAIT_CONVERSION: case AD5934_WAIT_CONVERSION:
@@ -570,20 +611,27 @@ void AD5934_Process_System(void)
{ {
case AD5934_ID_RTD: case AD5934_ID_RTD:
AD5934_RTD_NewSample(mag_float); AD5934_RTD_NewSample(mag_float);
rtd_now = mag_float;
rtd_now_i = mag_imag;
break; break;
case AD5934_ID_EC: case AD5934_ID_EC:
AD5934_EC_NewSample(mag_float); AD5934_EC_NewSample(mag_float);
ec_now = mag_real;
ec_now_i = mag_imag;
break; break;
case AD5934_ID_REF_100R_LOWGAIN:
case AD5934_ID_REF: AD5934_Reference_100R_LowGain_NewSample(mag_float);
AD5934_Reference_NewSample(mag_float); break;
ref_now = mag_float; case AD5934_ID_REF_100R_MIDGAIN:
ref_now_i = mag_imag; AD5934_Reference_100R_MidGain_NewSample(mag_float);
break;
case AD5934_ID_REF_100R_HIGHGAIN:
AD5934_Reference_100R_HighGain_NewSample(mag_float);
break;
case AD5934_ID_REF_1K_MIDGAIN:
AD5934_Reference_1K_MidGain_NewSample(mag_float);
break;
case AD5934_ID_REF_1K_HIGHGAIN:
AD5934_Reference_1K_HighGain_NewSample(mag_float);
break;
case AD5934_ID_REF_10K_HIGHGAIN:
AD5934_Reference_10K_HighGain_NewSample(mag_float);
break; break;
} }
if(sweep_count<(AD5934_BURST_SIZE-1)) if(sweep_count<(AD5934_BURST_SIZE-1))
@@ -602,7 +650,7 @@ void AD5934_Process_System(void)
case AD5934_SWITCH_MUX: case AD5934_SWITCH_MUX:
AD5934_StopSweep(); // Put AD5934 in Standby AD5934_StopSweep(); // Put AD5934 in Standby
current_mux_channel = (uint8_t)((current_mux_channel + 1) % 3); // Pointer to the next channel (Circular Buffer 0 to 2) current_mux_channel = (uint8_t)((current_mux_channel + 1) % 8); // Pointer to the next channel (Circular Buffer 0 to 7)
switch (current_mux_channel) switch (current_mux_channel)
{ {
case AD5934_ID_RTD: case AD5934_ID_RTD:
@@ -619,19 +667,30 @@ void AD5934_Process_System(void)
current_ec_mux = current_hw_mux_connection = AD5934_CH_EC_MID_GAIN; current_ec_mux = current_hw_mux_connection = AD5934_CH_EC_MID_GAIN;
break; break;
case AD5934_ID_REF: case AD5934_ID_REF_100R_LOWGAIN:
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) == GPIO_PIN_SET) // OFF = PT1000, ON = PT100, PA7 has internal pull-up and switch connects to GND
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF100R_LOW_GAIN; // 100 Ohms Reference Resistor current_ref_mux = current_hw_mux_connection = AD5934_CH_REF100R_LOW_GAIN; // 100 Ohms Reference Resistor
else break;
case AD5934_ID_REF_100R_MIDGAIN:
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF100R_MID_GAIN; // 100 Ohms Reference Resistor
break;
case AD5934_ID_REF_100R_HIGHGAIN:
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF100R_HIGH_GAIN; // 100 Ohms Reference Resistor
break;
case AD5934_ID_REF_1K_MIDGAIN:
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF1K_MID_GAIN; // 1K Reference Resistor current_ref_mux = current_hw_mux_connection = AD5934_CH_REF1K_MID_GAIN; // 1K Reference Resistor
break; break;
case AD5934_ID_REF_1K_HIGHGAIN:
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF1K_HIGH_GAIN; // 1K Reference Resistor
break;
case AD5934_ID_REF_10K_HIGHGAIN:
current_ref_mux = current_hw_mux_connection = AD5934_CH_REF10K_HIGH_GAIN; // 1K Reference Resistor
break;
} }
ADG715_SetChannels(current_hw_mux_connection); // Change the analog mux ADG715_SetChannels(current_hw_mux_connection); // Change the analog mux
HAL_Delay(12); HAL_Delay(12);
is_new_channel = 1; // Channel Switched is_new_channel = 1; // Channel Switched
//state_timer = g_ms_counter; // Reload timer to wait for stability ad5934_state = AD5934_START_CONVERSION; // Next State
//ad5934_state = AD5934_WAIT_MUX; // Next State
ad5934_state = AD5934_START_CONVERSION;
break; break;
} }
} }
@@ -738,7 +797,7 @@ void AD5934_Process_Sample(AD5934_filter_t *ch, float raw)
/* Final output: combines the IIR state (fast response to real drift) /* Final output: combines the IIR state (fast response to real drift)
* with the window average (more stable, slower response). Adjust * with the window average (more stable, slower response). Adjust
* the weighting per channel if needed. */ * the weighting per channel if needed. */
ch->filtered_value = 0.65f * ch->iir_state + 0.35f * window_average; ch->filtered_value = 0.9f * ch->iir_state + 0.1f * window_average;
//ch->filtered_value = window_average; //ch->filtered_value = window_average;
ch->value_valid = 1; ch->value_valid = 1;
} }
@@ -790,12 +849,45 @@ void AD5934_EC_NewSample(float raw)
/* Call this every time a sweep completes with the mux on the on-board /* Call this every time a sweep completes with the mux on the on-board
* precision reference resistor channel */ * precision reference resistor channel */
void AD5934_Reference_NewSample(float raw) void AD5934_Reference_100R_LowGain_NewSample(float raw)
{ {
AD5934_Process_Sample(&g_ref_filter, raw); AD5934_Process_Sample(&g_ref_100R_LowGain_filter, raw);
} }
/* Call this every time a sweep completes with the mux on the on-board
* precision reference resistor channel */
void AD5934_Reference_100R_MidGain_NewSample(float raw)
{
AD5934_Process_Sample(&g_ref_100R_MidGain_filter, raw);
}
/* Call this every time a sweep completes with the mux on the on-board
* precision reference resistor channel */
void AD5934_Reference_100R_HighGain_NewSample(float raw)
{
AD5934_Process_Sample(&g_ref_100R_HighGain_filter, raw);
}
/* Call this every time a sweep completes with the mux on the on-board
* precision reference resistor channel */
void AD5934_Reference_1K_MidGain_NewSample(float raw)
{
AD5934_Process_Sample(&g_ref_1K_MidGain_filter, raw);
}
/* Call this every time a sweep completes with the mux on the on-board
* precision reference resistor channel */
void AD5934_Reference_1K_HighGain_NewSample(float raw)
{
AD5934_Process_Sample(&g_ref_1K_HighGain_filter, raw);
}
/* Call this every time a sweep completes with the mux on the on-board
* precision reference resistor channel */
void AD5934_Reference_10K_HighGain_NewSample(float raw)
{
AD5934_Process_Sample(&g_ref_10K_HighGain_filter, raw);
}
/***************************************************************************** /*****************************************************************************
* ADG715 * ADG715
+22 -86
View File
@@ -90,9 +90,10 @@ int main(void)
uint32_t previous_millis_red = 0; uint32_t previous_millis_red = 0;
uint32_t current_millis; uint32_t current_millis;
float ref_final; float reference_resistor_100R = 0, reference_resistor_1K = 0, temperature_RTD = 0, thermal_compensaded_EC = 0;
float mag_reference, mag_rtd, mag_ec;
float mag_rtd_reference = 0, mag_ec_reference = 0, mag_rtd = 0, mag_ec = 0;
/* USER CODE END 1 */ /* USER CODE END 1 */
@@ -125,9 +126,6 @@ int main(void)
HAL_TIM_Base_Start_IT(&htim3); HAL_TIM_Base_Start_IT(&htim3);
//AD5934_MovingAvg_Init (&g_rtd_filter);
//AD5934_MovingAvg_Init (&g_ref_filter);
//AD5934_MovingAvg_Init (&g_ec_filter);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET); // LED Green Off HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET); // LED Green Off
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET); // LED Red Off HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET); // LED Red Off
@@ -143,7 +141,7 @@ int main(void)
/* Infinite loop */ /* Infinite loop */
/* USER CODE BEGIN WHILE */ /* USER CODE BEGIN WHILE */
/*
while(averages<20) while(averages<20)
{ {
AD5934_Process_System(); AD5934_Process_System();
@@ -151,28 +149,15 @@ int main(void)
current_millis = g_ms_counter; current_millis = g_ms_counter;
if((current_millis % 20) == 0) // Send data each 20ms if((current_millis % 100) == 0) // Send data each 40ms
{ {
if (g_ref_imag_filter.value_valid) // Reference Resistor on Board: 100 Ohms or 1000 Ohms
{
//reference_resistor = g_ref_filter.filtered_value;
reference_resistor = sqrtf((g_ref_real_filter.filtered_value * g_ref_real_filter.filtered_value)+(g_ref_imag_filter.filtered_value * g_ref_imag_filter.filtered_value));
//reference_resistor = ref_now;
//uint16_t reference_final = AD5934_REF_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_ref_filter.filtered_value, current_ref_mux);
averages++; averages++;
} }
} }
}
*/
digital_outputs_toggle(0); digital_outputs_toggle(0);
digital_outputs_toggle(1);
digital_outputs_toggle(2);
digital_outputs_toggle(3);
digital_outputs_toggle(4);
digital_outputs_toggle(5);
digital_outputs_toggle(6);
digital_outputs_toggle(7);
while (1) while (1)
@@ -181,88 +166,38 @@ int main(void)
AD5934_Process_System(); AD5934_Process_System();
ADS1015_Process_System(); ADS1015_Process_System();
current_millis = g_ms_counter; current_millis = g_ms_counter;
if((current_millis % 500) == 0) // Send data each 100ms if((current_millis % 500) == 0) // Send data each 100ms
{ {
//if (g_ref_filter.value_valid) // Reference Resistor on Board: 100 Ohms or 1000 Ohms
//{
mag_reference = g_ref_filter.filtered_value;
//mag_reference = sqrtf(((float)ref_now * (float)ref_now) + ((float)ref_now_i * (float)ref_now_i));
//mag_reference = sqrtf((g_ref_real_filter.average * g_ref_real_filter.average)+(g_ref_imag_filter.average * g_ref_imag_filter.average));
//mag_reference = (float)ref_now;
//reference_resistor = g_ref_filter.filtered_value;
//uint16_t reference_final = AD5934_REF_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_ref_filter.filtered_value, current_ref_mux);
//intToStr(reference_final, tempString); if (g_rtd_filter.value_valid) // PT100 or PT1000 in °C
//ref_final = g_ref_filter.filtered_value;
FloatToString(tempString, mag_reference);
//Convert2Hex(ref_now, tempString);
//intToStr(ref_now, tempString);
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
//intToStr(ref_now_i, tempString);
//rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
rs485_send_broadcast(&newline, 1);
//}
//if (g_rtd_filter.value_valid) // PT100 or PT1000 in °C
//{
//mag_rtd = (float)rtd_now;
mag_rtd = g_rtd_filter.filtered_value;
//mag_rtd = sqrtf((g_rtd_real_filter.average * g_rtd_real_filter.average)+(g_rtd_imag_filter.average * g_rtd_imag_filter.average));
//mag_rtd = sqrtf(((float)rtd_now * (float)rtd_now) + ((float)rtd_now_i * (float)rtd_now_i));
//temperature_RTD = AD5934_Calculate_Temperature(mag_reference, mag_rtd);
temperature_RTD = AD5934_Calculate_Temperature(mag_reference,mag_rtd);// AD5934_GetImpedance(mag_reference,mag_rtd);//
//uint16_t rtd_final = AD5934_RTD_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_rtd_filter.filtered_value, current_rtd_mux);
//uint16_t rtd_final = AD5934_Compress_To_IntScale(temperature_RTD, current_rtd_mux);
//intToStr(rtd_final, tempString);
//float rtd_final = g_rtd_filter.filtered_value; //g_rtd_filter.filtered_value;
FloatToString(tempString, temperature_RTD);
//Convert2Hex(rtd_now, tempString);
//intToStr(rtd_now, tempString);
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
//Convert2Hex(rtd_now_i, tempString);
//intToStr(rtd_now_i, tempString);
//rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
rs485_send_broadcast(&newline, 1);
//}
/*if (g_rtd_imag_filter.value_valid) // PT100 or PT1000 in °C
{ {
temperature_RTD = AD5934_Calculate_Temperature(g_ref_100R_LowGain_filter.filtered_value, g_ref_1K_MidGain_filter.filtered_value, g_rtd_filter.filtered_value);// AD5934_GetImpedance(mag_reference,mag_rtd);//
//float mag_rtd = sqrtf((g_rtd_real_filter.filtered_value * g_rtd_real_filter.filtered_value)+(g_rtd_imag_filter.filtered_value * g_rtd_imag_filter.filtered_value));
temperature_RTD = AD5934_Calculate_Temperature(reference_resistor, mag_rtd);
//uint16_t rtd_final = AD5934_RTD_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_rtd_filter.filtered_value, current_rtd_mux); //uint16_t rtd_final = AD5934_RTD_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_rtd_filter.filtered_value, current_rtd_mux);
//uint16_t rtd_final = AD5934_Compress_To_IntScale(temperature_RTD, current_rtd_mux); uint16_t rtd_final = AD5934_Compress_To_IntScale(temperature_RTD, current_rtd_mux);
//intToStr(rtd_final, tempString); intToStr(rtd_final, tempString);
float rtd_final = temperature_RTD; //g_rtd_filter.filtered_value; //FloatToString(tempString, temperature_RTD);
FloatToString(tempString, rtd_final);
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString))); rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
rs485_send_broadcast(&newline, 1); rs485_send_broadcast(&newline, 1);
}*/
//if (g_ec_filter.value_valid) // EC }
//{ if (g_ec_filter.value_valid) // EC
//mag_ec = sqrtf((g_ec_real_filter.filtered_value * g_ec_real_filter.filtered_value)+(g_ec_imag_filter.filtered_value * g_ec_imag_filter.filtered_value)); {
mag_ec = sqrtf(((float)ec_now * (float)ec_now) + ((float)ec_now_i * (float)ec_now_i)); mag_ec = AD5934_GetAdmittance(g_ref_100R_MidGain_filter.filtered_value, g_ref_1K_MidGain_filter.filtered_value, g_ref_1K_HighGain_filter.filtered_value, g_ref_10K_HighGain_filter.filtered_value, g_ec_filter.filtered_value);
thermal_compensaded_EC = AD5934_EC_Compensate_Magnitude_To_25C(mag_ec, temperature_RTD); thermal_compensaded_EC = AD5934_EC_Compensate_Magnitude_To_25C(mag_ec, temperature_RTD);
//uint16_t ec_final = AD5934_Compress_To_IntScale(thermal_compensaded_EC, current_ec_mux); uint16_t ec_final = AD5934_Compress_To_IntScale(mag_ec, current_ec_mux);
intToStr(ec_final, tempString);
//intToStr(ec_now, tempString); //FloatToString(tempString, thermal_compensaded_EC);
// float ec_final = g_ec_filter.filtered_value;
FloatToString(tempString, mag_ec);
//Convert2Hex((ec_now+0x80008000), tempString);
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString))); rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
//intToStr(ec_now_i, tempString);
//rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
rs485_send_broadcast(&newline, 1); rs485_send_broadcast(&newline, 1);
//} }
if (g_ph_filter.value_valid) // pH if (g_ph_filter.value_valid) // pH
{ {
uint16_t ph_final = ADS1015_Compress_To_IntScale(g_ph_filter.filtered_value); uint16_t ph_final = ADS1015_Compress_To_IntScale(g_ph_filter.filtered_value);
intToStr(ph_final, tempString); intToStr(ph_final, tempString);
//float ph_final = g_ph_filter.filtered_value; //float ph_final = g_ph_filter.filtered_value;
//FloatToString(tempString, ph_final); //FloatToString(tempString, ph_final);
@@ -275,6 +210,7 @@ int main(void)
} }
// Piscar LED verde em PB4 a cada 1 segundo // Piscar LED verde em PB4 a cada 1 segundo
if ((current_millis - previous_millis_green) >= 1000) if ((current_millis - previous_millis_green) >= 1000)
{ {
@@ -1,30 +1,36 @@
../Core/Src/ad5934_driver.c:48:6:AD5934_SetRegisterValue 2 ../Core/Src/ad5934_driver.c:53:6:AD5934_SetRegisterValue 2
../Core/Src/ad5934_driver.c:76:10:AD5934_GetRegisterValue 3 ../Core/Src/ad5934_driver.c:81:10:AD5934_GetRegisterValue 3
../Core/Src/ad5934_driver.c:110:10:AD5934_ReadRegister 3 ../Core/Src/ad5934_driver.c:115:10:AD5934_ReadRegister 3
../Core/Src/ad5934_driver.c:148:6:AD5934_Init 1 ../Core/Src/ad5934_driver.c:153:6:AD5934_Init 1
../Core/Src/ad5934_driver.c:179:6:AD5934_RestartSweep 1 ../Core/Src/ad5934_driver.c:184:6:AD5934_RestartSweep 1
../Core/Src/ad5934_driver.c:202:6:AD5934_Repeat_Sweep 1 ../Core/Src/ad5934_driver.c:207:6:AD5934_Repeat_Sweep 1
../Core/Src/ad5934_driver.c:215:6:AD5934_StopSweep 1 ../Core/Src/ad5934_driver.c:220:6:AD5934_StopSweep 1
../Core/Src/ad5934_driver.c:235:7:AD5934_Calculate_Temperature 4 ../Core/Src/ad5934_driver.c:240:7:AD5934_Calculate_Temperature 4
../Core/Src/ad5934_driver.c:288:7:AD5934_EC_Compensate_Magnitude_To_25C 2 ../Core/Src/ad5934_driver.c:298:7:AD5934_EC_Compensate_Magnitude_To_25C 2
../Core/Src/ad5934_driver.c:303:7:AD5934_EC_Calibrate_Temperature 5 ../Core/Src/ad5934_driver.c:313:7:AD5934_EC_Calibrate_Temperature 5
../Core/Src/ad5934_driver.c:349:7:AD5934_GetMagnitude 1 ../Core/Src/ad5934_driver.c:359:7:AD5934_GetMagnitude 1
../Core/Src/ad5934_driver.c:373:7:AD5934_GetImpedance 2 ../Core/Src/ad5934_driver.c:383:7:AD5934_GetImpedance 2
../Core/Src/ad5934_driver.c:404:10:AD5934_Get_Real_Imag_Numbers 1 ../Core/Src/ad5934_driver.c:413:7:AD5934_GetAdmittance 2
../Core/Src/ad5934_driver.c:423:10:AD5934_Compress_To_IntScale 5 ../Core/Src/ad5934_driver.c:452:10:AD5934_Get_Real_Imag_Numbers 1
../Core/Src/ad5934_driver.c:456:7:AD5934_Round_Float_Precision 2 ../Core/Src/ad5934_driver.c:471:10:AD5934_Compress_To_IntScale 5
../Core/Src/ad5934_driver.c:481:7:AD5934_Linear_Correction 1 ../Core/Src/ad5934_driver.c:504:7:AD5934_Round_Float_Precision 2
../Core/Src/ad5934_driver.c:500:7:AD5934_Calibrate 1 ../Core/Src/ad5934_driver.c:529:7:AD5934_Linear_Correction 1
../Core/Src/ad5934_driver.c:522:6:AD5934_Process_System 19 ../Core/Src/ad5934_driver.c:548:7:AD5934_Calibrate 1
../Core/Src/ad5934_driver.c:644:6:AD5934_Sort_Array 4 ../Core/Src/ad5934_driver.c:570:6:AD5934_Process_System 26
../Core/Src/ad5934_driver.c:666:7:AD5934_Trimmed_Mean 3 ../Core/Src/ad5934_driver.c:703:6:AD5934_Sort_Array 4
../Core/Src/ad5934_driver.c:692:7:AD5934_History_Average 2 ../Core/Src/ad5934_driver.c:725:7:AD5934_Trimmed_Mean 3
../Core/Src/ad5934_driver.c:706:6:AD5934_Process_Sample 4 ../Core/Src/ad5934_driver.c:751:7:AD5934_History_Average 2
../Core/Src/ad5934_driver.c:746:6:AD5934_MovingAvg_Init 2 ../Core/Src/ad5934_driver.c:765:6:AD5934_Process_Sample 4
../Core/Src/ad5934_driver.c:757:6:AD5934_MovingAvg_Process 3 ../Core/Src/ad5934_driver.c:805:6:AD5934_MovingAvg_Init 2
../Core/Src/ad5934_driver.c:777:6:AD5934_RTD_NewSample 1 ../Core/Src/ad5934_driver.c:816:6:AD5934_MovingAvg_Process 3
../Core/Src/ad5934_driver.c:785:6:AD5934_EC_NewSample 1 ../Core/Src/ad5934_driver.c:836:6:AD5934_RTD_NewSample 1
../Core/Src/ad5934_driver.c:793:6:AD5934_Reference_NewSample 1 ../Core/Src/ad5934_driver.c:844:6:AD5934_EC_NewSample 1
../Core/Src/ad5934_driver.c:810:6:ADG715_SetRegisterValue 1 ../Core/Src/ad5934_driver.c:852:6:AD5934_Reference_100R_LowGain_NewSample 1
../Core/Src/ad5934_driver.c:828:6:ADG715_ResetChannels 1 ../Core/Src/ad5934_driver.c:859:6:AD5934_Reference_100R_MidGain_NewSample 1
../Core/Src/ad5934_driver.c:840:6:ADG715_SetChannels 2 ../Core/Src/ad5934_driver.c:866:6:AD5934_Reference_100R_HighGain_NewSample 1
../Core/Src/ad5934_driver.c:873:6:AD5934_Reference_1K_MidGain_NewSample 1
../Core/Src/ad5934_driver.c:880:6:AD5934_Reference_1K_HighGain_NewSample 1
../Core/Src/ad5934_driver.c:887:6:AD5934_Reference_10K_HighGain_NewSample 1
../Core/Src/ad5934_driver.c:902:6:ADG715_SetRegisterValue 1
../Core/Src/ad5934_driver.c:920:6:ADG715_ResetChannels 1
../Core/Src/ad5934_driver.c:932:6:ADG715_SetChannels 2
Binary file not shown.
+36 -30
View File
@@ -1,30 +1,36 @@
../Core/Src/ad5934_driver.c:48:6:AD5934_SetRegisterValue 32 static ../Core/Src/ad5934_driver.c:53:6:AD5934_SetRegisterValue 32 static
../Core/Src/ad5934_driver.c:76:10:AD5934_GetRegisterValue 40 static ../Core/Src/ad5934_driver.c:81:10:AD5934_GetRegisterValue 40 static
../Core/Src/ad5934_driver.c:110:10:AD5934_ReadRegister 48 static ../Core/Src/ad5934_driver.c:115:10:AD5934_ReadRegister 48 static
../Core/Src/ad5934_driver.c:148:6:AD5934_Init 8 static ../Core/Src/ad5934_driver.c:153:6:AD5934_Init 8 static
../Core/Src/ad5934_driver.c:179:6:AD5934_RestartSweep 8 static ../Core/Src/ad5934_driver.c:184:6:AD5934_RestartSweep 8 static
../Core/Src/ad5934_driver.c:202:6:AD5934_Repeat_Sweep 8 static ../Core/Src/ad5934_driver.c:207:6:AD5934_Repeat_Sweep 8 static
../Core/Src/ad5934_driver.c:215:6:AD5934_StopSweep 8 static ../Core/Src/ad5934_driver.c:220:6:AD5934_StopSweep 8 static
../Core/Src/ad5934_driver.c:235:7:AD5934_Calculate_Temperature 48 static ../Core/Src/ad5934_driver.c:240:7:AD5934_Calculate_Temperature 64 static
../Core/Src/ad5934_driver.c:288:7:AD5934_EC_Compensate_Magnitude_To_25C 24 static ../Core/Src/ad5934_driver.c:298:7:AD5934_EC_Compensate_Magnitude_To_25C 24 static
../Core/Src/ad5934_driver.c:303:7:AD5934_EC_Calibrate_Temperature 152 static ../Core/Src/ad5934_driver.c:313:7:AD5934_EC_Calibrate_Temperature 152 static
../Core/Src/ad5934_driver.c:349:7:AD5934_GetMagnitude 24 static ../Core/Src/ad5934_driver.c:359:7:AD5934_GetMagnitude 24 static
../Core/Src/ad5934_driver.c:373:7:AD5934_GetImpedance 32 static ../Core/Src/ad5934_driver.c:383:7:AD5934_GetImpedance 32 static
../Core/Src/ad5934_driver.c:404:10:AD5934_Get_Real_Imag_Numbers 16 static ../Core/Src/ad5934_driver.c:413:7:AD5934_GetAdmittance 72 static
../Core/Src/ad5934_driver.c:423:10:AD5934_Compress_To_IntScale 32 static ../Core/Src/ad5934_driver.c:452:10:AD5934_Get_Real_Imag_Numbers 16 static
../Core/Src/ad5934_driver.c:456:7:AD5934_Round_Float_Precision 24 static ../Core/Src/ad5934_driver.c:471:10:AD5934_Compress_To_IntScale 32 static
../Core/Src/ad5934_driver.c:481:7:AD5934_Linear_Correction 24 static ../Core/Src/ad5934_driver.c:504:7:AD5934_Round_Float_Precision 24 static
../Core/Src/ad5934_driver.c:500:7:AD5934_Calibrate 48 static ../Core/Src/ad5934_driver.c:529:7:AD5934_Linear_Correction 24 static
../Core/Src/ad5934_driver.c:522:6:AD5934_Process_System 32 static ../Core/Src/ad5934_driver.c:548:7:AD5934_Calibrate 48 static
../Core/Src/ad5934_driver.c:644:6:AD5934_Sort_Array 24 static ../Core/Src/ad5934_driver.c:570:6:AD5934_Process_System 32 static
../Core/Src/ad5934_driver.c:666:7:AD5934_Trimmed_Mean 32 static ../Core/Src/ad5934_driver.c:703:6:AD5934_Sort_Array 24 static
../Core/Src/ad5934_driver.c:692:7:AD5934_History_Average 24 static ../Core/Src/ad5934_driver.c:725:7:AD5934_Trimmed_Mean 32 static
../Core/Src/ad5934_driver.c:706:6:AD5934_Process_Sample 32 static ../Core/Src/ad5934_driver.c:751:7:AD5934_History_Average 24 static
../Core/Src/ad5934_driver.c:746:6:AD5934_MovingAvg_Init 24 static ../Core/Src/ad5934_driver.c:765:6:AD5934_Process_Sample 32 static
../Core/Src/ad5934_driver.c:757:6:AD5934_MovingAvg_Process 24 static ../Core/Src/ad5934_driver.c:805:6:AD5934_MovingAvg_Init 24 static
../Core/Src/ad5934_driver.c:777:6:AD5934_RTD_NewSample 16 static ../Core/Src/ad5934_driver.c:816:6:AD5934_MovingAvg_Process 24 static
../Core/Src/ad5934_driver.c:785:6:AD5934_EC_NewSample 16 static ../Core/Src/ad5934_driver.c:836:6:AD5934_RTD_NewSample 16 static
../Core/Src/ad5934_driver.c:793:6:AD5934_Reference_NewSample 16 static ../Core/Src/ad5934_driver.c:844:6:AD5934_EC_NewSample 16 static
../Core/Src/ad5934_driver.c:810:6:ADG715_SetRegisterValue 32 static ../Core/Src/ad5934_driver.c:852:6:AD5934_Reference_100R_LowGain_NewSample 16 static
../Core/Src/ad5934_driver.c:828:6:ADG715_ResetChannels 8 static ../Core/Src/ad5934_driver.c:859:6:AD5934_Reference_100R_MidGain_NewSample 16 static
../Core/Src/ad5934_driver.c:840:6:ADG715_SetChannels 16 static ../Core/Src/ad5934_driver.c:866:6:AD5934_Reference_100R_HighGain_NewSample 16 static
../Core/Src/ad5934_driver.c:873:6:AD5934_Reference_1K_MidGain_NewSample 16 static
../Core/Src/ad5934_driver.c:880:6:AD5934_Reference_1K_HighGain_NewSample 16 static
../Core/Src/ad5934_driver.c:887:6:AD5934_Reference_10K_HighGain_NewSample 16 static
../Core/Src/ad5934_driver.c:902:6:ADG715_SetRegisterValue 32 static
../Core/Src/ad5934_driver.c:920:6:ADG715_ResetChannels 8 static
../Core/Src/ad5934_driver.c:932:6:ADG715_SetChannels 16 static
+7 -7
View File
@@ -1,7 +1,7 @@
../Core/Src/main.c:79:5:main 4 ../Core/Src/main.c:79:5:main 8
../Core/Src/main.c:314:6:SystemClock_Config 4 ../Core/Src/main.c:250:6:SystemClock_Config 4
../Core/Src/main.c:365:6:FloatToString 8 ../Core/Src/main.c:301:6:FloatToString 8
../Core/Src/main.c:427:6:intToStr 12 ../Core/Src/main.c:363:6:intToStr 12
../Core/Src/main.c:493:6:Convert2Hex 2 ../Core/Src/main.c:429:6:Convert2Hex 2
../Core/Src/main.c:507:6:HAL_TIM_PeriodElapsedCallback 2 ../Core/Src/main.c:443:6:HAL_TIM_PeriodElapsedCallback 2
../Core/Src/main.c:523:6:Error_Handler 1 ../Core/Src/main.c:459:6:Error_Handler 1
Binary file not shown.
+7 -7
View File
@@ -1,7 +1,7 @@
../Core/Src/main.c:79:5:main 72 static ../Core/Src/main.c:79:5:main 104 static
../Core/Src/main.c:314:6:SystemClock_Config 88 static ../Core/Src/main.c:250:6:SystemClock_Config 88 static
../Core/Src/main.c:365:6:FloatToString 104 static ../Core/Src/main.c:301:6:FloatToString 104 static
../Core/Src/main.c:427:6:intToStr 32 static ../Core/Src/main.c:363:6:intToStr 32 static
../Core/Src/main.c:493:6:Convert2Hex 48 static ../Core/Src/main.c:429:6:Convert2Hex 48 static
../Core/Src/main.c:507:6:HAL_TIM_PeriodElapsedCallback 16 static ../Core/Src/main.c:443:6:HAL_TIM_PeriodElapsedCallback 16 static
../Core/Src/main.c:523:6:Error_Handler 4 static,ignoring_inline_asm ../Core/Src/main.c:459:6:Error_Handler 4 static,ignoring_inline_asm
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff