Чуть подкоректированны и закоментированны структуры
This commit is contained in:
parent
8326ea8a8c
commit
7f6932631e
@ -41,33 +41,19 @@ typedef struct
|
||||
|
||||
uint16_t ADC_Max;
|
||||
uint16_t ADC_Min;
|
||||
unsigned pulse_peak_ind;
|
||||
|
||||
|
||||
/* Parameter for calc voltage */
|
||||
ADC_ParamsTypeDef s;
|
||||
|
||||
|
||||
unsigned pulse_peak_ind;
|
||||
|
||||
ADC_ChannelState state;
|
||||
|
||||
ADCChannel_TrackerTypeDef adc_ch_err;
|
||||
}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
|
||||
{
|
||||
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_Channels_Prepare(TESTER_ADCChannelTypeDef *adc_fuel_cells, uint8_t MaskForChannels, uint8_t state);
|
||||
HAL_StatusTypeDef ADC_DMA_StartRead(TESTER_ADCTypeDef *adc);
|
||||
/* Считать буфер DMA и найти в нем пик (скачок напряжения) */
|
||||
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);
|
||||
|
||||
#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_U_CALIBR ((float)3.0) ///< Калибровочное напряжение
|
||||
|
@ -29,12 +29,12 @@ void TESTER_HandleInit(TESTER_TestHandleTypeDef *htest)
|
||||
*/
|
||||
void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest)
|
||||
{
|
||||
/* Задержка, перед началом работы */
|
||||
TESTER_Delay(&htest->SwTimings.ticks_before_test);
|
||||
|
||||
/* Включение континиус АЦП */
|
||||
HAL_ADC_Start(htest->adc->hadc);
|
||||
|
||||
/* Задержка, перед подключением питания */
|
||||
TESTER_Delay(&htest->SwTimings.ticks_before_connect);
|
||||
|
||||
/* Подкючение питания к диоду */
|
||||
TESTER_Connect_Power(&htest->DCPosSw);
|
||||
|
||||
@ -64,11 +64,14 @@ void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest)
|
||||
*/
|
||||
void TESTER_TestDiode_NegativePower(TESTER_TestHandleTypeDef *htest)
|
||||
{
|
||||
/* Задержка, перед началом работы */
|
||||
TESTER_Delay(&htest->SwTimings.ticks_before_test);
|
||||
|
||||
/* Включение АЦП */
|
||||
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);
|
||||
@ -90,24 +93,26 @@ void TESTER_TestDiode_NegativePower(TESTER_TestHandleTypeDef *htest)
|
||||
*/
|
||||
void TESTER_TestDiode_PosNegPower(TESTER_TestHandleTypeDef *htest)
|
||||
{
|
||||
|
||||
/* Задержка, перед подключением питания */
|
||||
TESTER_Delay(&htest->SwTimings.ticks_before_connect);
|
||||
/* Задержка, перед началом работы */
|
||||
TESTER_Delay(&htest->SwTimings.ticks_before_test);
|
||||
|
||||
/* Подкючение питания к диоду */
|
||||
TESTER_Connect_Power(&htest->DCPosSw);
|
||||
|
||||
/* Подключение питания на определенное время */
|
||||
TESTER_Delay(&htest->SwTimings.ticks_before_reconnect);
|
||||
/* Подкючение положительного питания к диоду */
|
||||
msDelay(htest->SwTimings.msticks_for_positive_dc);
|
||||
|
||||
/* Включение АЦП */
|
||||
ADC_DMA_StartRead(htest->adc);
|
||||
|
||||
/* Ожидается задержка, перед предполагаемым скачком */
|
||||
TESTER_Delay(&htest->SwTimings.ticks_before_go_to_peak);
|
||||
|
||||
/* Отключение питания от диода */
|
||||
TESTER_Disconnect_Power(&htest->DCPosSw);
|
||||
TESTER_Connect_Power(&htest->DCNegSw);
|
||||
|
||||
/* Подключение питания на определенное время */
|
||||
/* Подключение отрицательного питания на определенное время */
|
||||
TESTER_Delay(&htest->SwTimings.ticks_before_disconnect);
|
||||
|
||||
/* Отключение питания от диода */
|
||||
|
@ -14,39 +14,50 @@
|
||||
#include "tester_adc_func.h"
|
||||
|
||||
|
||||
/**
|
||||
* @brief Структура для пинов, которые отвечают за ключи, которые подключают питание
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
GPIO_TypeDef *SW1_Port;
|
||||
uint32_t SW1_Pin;
|
||||
GPIO_TypeDef *SW1_Port; ///< Порт пина первого ключа для питания
|
||||
uint32_t SW1_Pin; ///< Пин первого ключа для питания
|
||||
|
||||
GPIO_TypeDef *SW2_Port;
|
||||
uint32_t SW2_Pin;
|
||||
GPIO_TypeDef *SW2_Port; ///< Порт пина второго ключа для питания
|
||||
uint32_t SW2_Pin; ///< Пин второго ключа для питания
|
||||
}TESTER_PowerSwitchTypeDef;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Структура для тайминга с флагом миллисекундой или тиковой (пустой for) задержкой
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
unsigned msdelay:1;
|
||||
uint32_t ticks;
|
||||
}TESTER_TicksDelayTypeDef;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Структура с таймингами для тестера
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t msticks_for_positive_dc;
|
||||
TESTER_TicksDelayTypeDef ticks_before_connect;
|
||||
TESTER_TicksDelayTypeDef ticks_before_disconnect;
|
||||
TESTER_TicksDelayTypeDef ticks_before_reconnect;
|
||||
uint32_t msticks_for_positive_dc; ///< миллисекундная задержка для положительного напряжения @ref TESTER_TestDiode_PositivePower
|
||||
TESTER_TicksDelayTypeDef ticks_before_test; ///< задержка перед началом тестирования (мс или тики for())
|
||||
TESTER_TicksDelayTypeDef ticks_before_disconnect; ///< задержка перед выключением питания (мс или тики for())
|
||||
TESTER_TicksDelayTypeDef ticks_before_go_to_peak; ///< задержка между включением АЦП и предполагаемым скачком напряжения, чтобы точно поймать его в буфере АЦП (мс или тики for())
|
||||
}TESTER_SwitchTimingsTypeDef;
|
||||
|
||||
/**
|
||||
* @brief Структура-дескриптор для управления тестированием диодов
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
TESTER_ADCTypeDef *adc;
|
||||
TESTER_ADCTypeDef *adc; ///< указатель на структуру АЦП тестера
|
||||
|
||||
TESTER_SwitchTimingsTypeDef SwTimings;
|
||||
TESTER_SwitchTimingsTypeDef SwTimings; ///< Тайминги для ключей
|
||||
|
||||
TESTER_PowerSwitchTypeDef DCPosSw;
|
||||
TESTER_PowerSwitchTypeDef DCNegSw;
|
||||
TESTER_PowerSwitchTypeDef DCPosSw; ///< Пины ключей для положительного источника
|
||||
TESTER_PowerSwitchTypeDef DCNegSw; ///< Пины ключей для отрицательного источника
|
||||
|
||||
uint32_t continuous_buff_size;
|
||||
|
||||
|
@ -26,14 +26,17 @@ typedef struct
|
||||
unsigned disable_reset_call:1;
|
||||
}function_calls;
|
||||
|
||||
/**
|
||||
* @brief Структура проекта тестер
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
function_calls func;
|
||||
function_calls func; ///< вызов разных функций
|
||||
|
||||
TESTER_TestHandleTypeDef *htest;
|
||||
TESTER_TestHandleTypeDef *htest; ///< дескриптор тестера
|
||||
|
||||
uint32_t delay;
|
||||
uint32_t delay_en:1;
|
||||
uint32_t delay; ///< задержка главного цикла
|
||||
uint32_t delay_en:1; ///< включить задержку в главном цикле
|
||||
}TESTER_ProjectTypeDef;
|
||||
extern TESTER_ProjectTypeDef TESTER;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user