Чуть подкоректированны и закоментированны структуры
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,11 +29,11 @@ void TESTER_HandleInit(TESTER_TestHandleTypeDef *htest)
 | 
			
		||||
  */
 | 
			
		||||
void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest)
 | 
			
		||||
{
 | 
			
		||||
  /* Включение континиус АЦП */
 | 
			
		||||
  HAL_ADC_Start(htest->adc->hadc);
 | 
			
		||||
  /* Задержка, перед началом работы */
 | 
			
		||||
  TESTER_Delay(&htest->SwTimings.ticks_before_test);
 | 
			
		||||
  
 | 
			
		||||
  /* Задержка, перед подключением питания */
 | 
			
		||||
  TESTER_Delay(&htest->SwTimings.ticks_before_connect);
 | 
			
		||||
  /* Включение континиус АЦП */
 | 
			
		||||
  HAL_ADC_Start(htest->adc->hadc);  
 | 
			
		||||
  
 | 
			
		||||
  /* Подкючение питания к диоду */
 | 
			
		||||
  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