Чуть подкоректированны и закоментированны структуры
This commit is contained in:
parent
8326ea8a8c
commit
7f6932631e
@ -41,33 +41,19 @@ typedef struct
|
|||||||
|
|
||||||
uint16_t ADC_Max;
|
uint16_t ADC_Max;
|
||||||
uint16_t ADC_Min;
|
uint16_t ADC_Min;
|
||||||
|
unsigned pulse_peak_ind;
|
||||||
|
|
||||||
|
|
||||||
/* Parameter for calc voltage */
|
/* Parameter for calc voltage */
|
||||||
ADC_ParamsTypeDef s;
|
ADC_ParamsTypeDef s;
|
||||||
|
|
||||||
|
|
||||||
unsigned pulse_peak_ind;
|
|
||||||
|
|
||||||
ADC_ChannelState state;
|
ADC_ChannelState state;
|
||||||
|
|
||||||
ADCChannel_TrackerTypeDef adc_ch_err;
|
ADCChannel_TrackerTypeDef adc_ch_err;
|
||||||
}TESTER_ADCChannelTypeDef;
|
}TESTER_ADCChannelTypeDef;
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
int32_t t_current;
|
|
||||||
int32_t t_critical;
|
|
||||||
|
|
||||||
#ifdef FOSTER_STUDENT_USER_T_CRITICAL
|
|
||||||
#else
|
|
||||||
uint8_t precise_table_ind;
|
|
||||||
#endif
|
|
||||||
uint16_t array_size;
|
|
||||||
|
|
||||||
}TESTER_ADCFilterTypeDef;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
TESTER_ADCChannelTypeDef chAdc;
|
TESTER_ADCChannelTypeDef chAdc;
|
||||||
@ -99,8 +85,9 @@ void ADC_DMA_Handler(TESTER_ADCTypeDef *adc);
|
|||||||
void ADC_DMA_ProcessBufferForPeak(TESTER_ADCChannelTypeDef *adc_fc);
|
void ADC_DMA_ProcessBufferForPeak(TESTER_ADCChannelTypeDef *adc_fc);
|
||||||
void ADC_DMA_Channels_Prepare(TESTER_ADCChannelTypeDef *adc_fuel_cells, uint8_t MaskForChannels, uint8_t state);
|
void ADC_DMA_Channels_Prepare(TESTER_ADCChannelTypeDef *adc_fuel_cells, uint8_t MaskForChannels, uint8_t state);
|
||||||
HAL_StatusTypeDef ADC_DMA_StartRead(TESTER_ADCTypeDef *adc);
|
HAL_StatusTypeDef ADC_DMA_StartRead(TESTER_ADCTypeDef *adc);
|
||||||
|
/* Считать буфер DMA и найти в нем пик (скачок напряжения) */
|
||||||
HAL_StatusTypeDef ADC_DMA_ReadForPeak(TESTER_ADCTypeDef *adc, uint32_t Timeout);
|
HAL_StatusTypeDef ADC_DMA_ReadForPeak(TESTER_ADCTypeDef *adc, uint32_t Timeout);
|
||||||
|
/* Считывать АЦП, который работает в континуес режиме */
|
||||||
HAL_StatusTypeDef ADC_ReadContinuous(TESTER_ADCTypeDef *adc, uint32_t buff_size, uint32_t tickstart, uint32_t timeout);
|
HAL_StatusTypeDef ADC_ReadContinuous(TESTER_ADCTypeDef *adc, uint32_t buff_size, uint32_t tickstart, uint32_t timeout);
|
||||||
|
|
||||||
#ifndef printf_adc_result
|
#ifndef printf_adc_result
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
@{
|
@{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ADC_BUFF_SIZE (1000) ///< Размер буфера АЦП
|
#define ADC_BUFF_SIZE (200) ///< Размер буфера АЦП
|
||||||
#define ADC_DMA_BUFF_SIZE (ADC_BUFF_SIZE) ///< Размер буфера ДМА (1 канал)
|
#define ADC_DMA_BUFF_SIZE (ADC_BUFF_SIZE) ///< Размер буфера ДМА (1 канал)
|
||||||
|
|
||||||
#define ADC_U_CALIBR ((float)3.0) ///< Калибровочное напряжение
|
#define ADC_U_CALIBR ((float)3.0) ///< Калибровочное напряжение
|
||||||
|
@ -29,12 +29,12 @@ void TESTER_HandleInit(TESTER_TestHandleTypeDef *htest)
|
|||||||
*/
|
*/
|
||||||
void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest)
|
void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest)
|
||||||
{
|
{
|
||||||
|
/* Задержка, перед началом работы */
|
||||||
|
TESTER_Delay(&htest->SwTimings.ticks_before_test);
|
||||||
|
|
||||||
/* Включение континиус АЦП */
|
/* Включение континиус АЦП */
|
||||||
HAL_ADC_Start(htest->adc->hadc);
|
HAL_ADC_Start(htest->adc->hadc);
|
||||||
|
|
||||||
/* Задержка, перед подключением питания */
|
|
||||||
TESTER_Delay(&htest->SwTimings.ticks_before_connect);
|
|
||||||
|
|
||||||
/* Подкючение питания к диоду */
|
/* Подкючение питания к диоду */
|
||||||
TESTER_Connect_Power(&htest->DCPosSw);
|
TESTER_Connect_Power(&htest->DCPosSw);
|
||||||
|
|
||||||
@ -64,11 +64,14 @@ void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest)
|
|||||||
*/
|
*/
|
||||||
void TESTER_TestDiode_NegativePower(TESTER_TestHandleTypeDef *htest)
|
void TESTER_TestDiode_NegativePower(TESTER_TestHandleTypeDef *htest)
|
||||||
{
|
{
|
||||||
|
/* Задержка, перед началом работы */
|
||||||
|
TESTER_Delay(&htest->SwTimings.ticks_before_test);
|
||||||
|
|
||||||
/* Включение АЦП */
|
/* Включение АЦП */
|
||||||
ADC_DMA_StartRead(htest->adc);
|
ADC_DMA_StartRead(htest->adc);
|
||||||
|
|
||||||
/* Задержка, перед подключением питания */
|
/* Задержка, перед предполагаемым скачком */
|
||||||
TESTER_Delay(&htest->SwTimings.ticks_before_connect);
|
TESTER_Delay(&htest->SwTimings.ticks_before_go_to_peak);
|
||||||
|
|
||||||
/* Подкючение питания к диоду */
|
/* Подкючение питания к диоду */
|
||||||
TESTER_Connect_Power(&htest->DCNegSw);
|
TESTER_Connect_Power(&htest->DCNegSw);
|
||||||
@ -90,24 +93,26 @@ void TESTER_TestDiode_NegativePower(TESTER_TestHandleTypeDef *htest)
|
|||||||
*/
|
*/
|
||||||
void TESTER_TestDiode_PosNegPower(TESTER_TestHandleTypeDef *htest)
|
void TESTER_TestDiode_PosNegPower(TESTER_TestHandleTypeDef *htest)
|
||||||
{
|
{
|
||||||
|
/* Задержка, перед началом работы */
|
||||||
/* Задержка, перед подключением питания */
|
TESTER_Delay(&htest->SwTimings.ticks_before_test);
|
||||||
TESTER_Delay(&htest->SwTimings.ticks_before_connect);
|
|
||||||
|
|
||||||
/* Подкючение питания к диоду */
|
/* Подкючение питания к диоду */
|
||||||
TESTER_Connect_Power(&htest->DCPosSw);
|
TESTER_Connect_Power(&htest->DCPosSw);
|
||||||
|
|
||||||
/* Подключение питания на определенное время */
|
/* Подкючение положительного питания к диоду */
|
||||||
TESTER_Delay(&htest->SwTimings.ticks_before_reconnect);
|
msDelay(htest->SwTimings.msticks_for_positive_dc);
|
||||||
|
|
||||||
/* Включение АЦП */
|
/* Включение АЦП */
|
||||||
ADC_DMA_StartRead(htest->adc);
|
ADC_DMA_StartRead(htest->adc);
|
||||||
|
|
||||||
|
/* Ожидается задержка, перед предполагаемым скачком */
|
||||||
|
TESTER_Delay(&htest->SwTimings.ticks_before_go_to_peak);
|
||||||
|
|
||||||
/* Отключение питания от диода */
|
/* Отключение питания от диода */
|
||||||
TESTER_Disconnect_Power(&htest->DCPosSw);
|
TESTER_Disconnect_Power(&htest->DCPosSw);
|
||||||
TESTER_Connect_Power(&htest->DCNegSw);
|
TESTER_Connect_Power(&htest->DCNegSw);
|
||||||
|
|
||||||
/* Подключение питания на определенное время */
|
/* Подключение отрицательного питания на определенное время */
|
||||||
TESTER_Delay(&htest->SwTimings.ticks_before_disconnect);
|
TESTER_Delay(&htest->SwTimings.ticks_before_disconnect);
|
||||||
|
|
||||||
/* Отключение питания от диода */
|
/* Отключение питания от диода */
|
||||||
|
@ -14,39 +14,50 @@
|
|||||||
#include "tester_adc_func.h"
|
#include "tester_adc_func.h"
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Структура для пинов, которые отвечают за ключи, которые подключают питание
|
||||||
|
*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
GPIO_TypeDef *SW1_Port;
|
GPIO_TypeDef *SW1_Port; ///< Порт пина первого ключа для питания
|
||||||
uint32_t SW1_Pin;
|
uint32_t SW1_Pin; ///< Пин первого ключа для питания
|
||||||
|
|
||||||
GPIO_TypeDef *SW2_Port;
|
GPIO_TypeDef *SW2_Port; ///< Порт пина второго ключа для питания
|
||||||
uint32_t SW2_Pin;
|
uint32_t SW2_Pin; ///< Пин второго ключа для питания
|
||||||
}TESTER_PowerSwitchTypeDef;
|
}TESTER_PowerSwitchTypeDef;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Структура для тайминга с флагом миллисекундой или тиковой (пустой for) задержкой
|
||||||
|
*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned msdelay:1;
|
unsigned msdelay:1;
|
||||||
uint32_t ticks;
|
uint32_t ticks;
|
||||||
}TESTER_TicksDelayTypeDef;
|
}TESTER_TicksDelayTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Структура с таймингами для тестера
|
||||||
|
*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
uint32_t msticks_for_positive_dc;
|
uint32_t msticks_for_positive_dc; ///< миллисекундная задержка для положительного напряжения @ref TESTER_TestDiode_PositivePower
|
||||||
TESTER_TicksDelayTypeDef ticks_before_connect;
|
TESTER_TicksDelayTypeDef ticks_before_test; ///< задержка перед началом тестирования (мс или тики for())
|
||||||
TESTER_TicksDelayTypeDef ticks_before_disconnect;
|
TESTER_TicksDelayTypeDef ticks_before_disconnect; ///< задержка перед выключением питания (мс или тики for())
|
||||||
TESTER_TicksDelayTypeDef ticks_before_reconnect;
|
TESTER_TicksDelayTypeDef ticks_before_go_to_peak; ///< задержка между включением АЦП и предполагаемым скачком напряжения, чтобы точно поймать его в буфере АЦП (мс или тики for())
|
||||||
}TESTER_SwitchTimingsTypeDef;
|
}TESTER_SwitchTimingsTypeDef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Структура-дескриптор для управления тестированием диодов
|
||||||
|
*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
TESTER_ADCTypeDef *adc;
|
TESTER_ADCTypeDef *adc; ///< указатель на структуру АЦП тестера
|
||||||
|
|
||||||
TESTER_SwitchTimingsTypeDef SwTimings;
|
TESTER_SwitchTimingsTypeDef SwTimings; ///< Тайминги для ключей
|
||||||
|
|
||||||
TESTER_PowerSwitchTypeDef DCPosSw;
|
TESTER_PowerSwitchTypeDef DCPosSw; ///< Пины ключей для положительного источника
|
||||||
TESTER_PowerSwitchTypeDef DCNegSw;
|
TESTER_PowerSwitchTypeDef DCNegSw; ///< Пины ключей для отрицательного источника
|
||||||
|
|
||||||
uint32_t continuous_buff_size;
|
uint32_t continuous_buff_size;
|
||||||
|
|
||||||
|
@ -26,14 +26,17 @@ typedef struct
|
|||||||
unsigned disable_reset_call:1;
|
unsigned disable_reset_call:1;
|
||||||
}function_calls;
|
}function_calls;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Структура проекта тестер
|
||||||
|
*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
function_calls func;
|
function_calls func; ///< вызов разных функций
|
||||||
|
|
||||||
TESTER_TestHandleTypeDef *htest;
|
TESTER_TestHandleTypeDef *htest; ///< дескриптор тестера
|
||||||
|
|
||||||
uint32_t delay;
|
uint32_t delay; ///< задержка главного цикла
|
||||||
uint32_t delay_en:1;
|
uint32_t delay_en:1; ///< включить задержку в главном цикле
|
||||||
}TESTER_ProjectTypeDef;
|
}TESTER_ProjectTypeDef;
|
||||||
extern TESTER_ProjectTypeDef TESTER;
|
extern TESTER_ProjectTypeDef TESTER;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user