Функции для работы с кнопками и диодами перенесены в модуль gpio_general
This commit is contained in:
		
							parent
							
								
									87849674ab
								
							
						
					
					
						commit
						b47fe883ff
					
				
							
								
								
									
										128
									
								
								diode_tester/Core/MyLibs/general_gpio.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								diode_tester/Core/MyLibs/general_gpio.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,128 @@
 | 
				
			|||||||
 | 
					/** 
 | 
				
			||||||
 | 
						**************************************************************************
 | 
				
			||||||
 | 
						* @file general_gpio.c
 | 
				
			||||||
 | 
						* @brief Модуль для инициализации портов.
 | 
				
			||||||
 | 
						**************************************************************************
 | 
				
			||||||
 | 
							@verbatim
 | 
				
			||||||
 | 
							//-------------------Функции-------------------//
 | 
				
			||||||
 | 
							Functions: users
 | 
				
			||||||
 | 
								- GPIO_Clock_Enable							Инициализация тактирования порта
 | 
				
			||||||
 | 
							@endverbatim
 | 
				
			||||||
 | 
					***************************************************************************/
 | 
				
			||||||
 | 
					#include "general_gpio.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//-------------------------------------------------------------------
 | 
				
			||||||
 | 
					//------------------------GPIO INIT FUNCTIONS------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
 | 
				
			||||||
 | 
					{	
 | 
				
			||||||
 | 
						HAL_StatusTypeDef status = HAL_OK;
 | 
				
			||||||
 | 
						// choose port for enable clock
 | 
				
			||||||
 | 
						if (GPIOx==GPIOA)
 | 
				
			||||||
 | 
							__HAL_RCC_GPIOA_CLK_ENABLE();
 | 
				
			||||||
 | 
						else if (GPIOx==GPIOB)
 | 
				
			||||||
 | 
							__HAL_RCC_GPIOB_CLK_ENABLE();
 | 
				
			||||||
 | 
						else if (GPIOx==GPIOC)
 | 
				
			||||||
 | 
							__HAL_RCC_GPIOC_CLK_ENABLE();
 | 
				
			||||||
 | 
					#ifdef GPIOD
 | 
				
			||||||
 | 
						else if (GPIOx==GPIOD)
 | 
				
			||||||
 | 
							__HAL_RCC_GPIOD_CLK_ENABLE();
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef GPIOE
 | 
				
			||||||
 | 
						else if (GPIOx==GPIOE)
 | 
				
			||||||
 | 
							__HAL_RCC_GPIOE_CLK_ENABLE();
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							status = HAL_ERROR;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						return status;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//------------------------GPIO INIT FUNCTIONS------------------------
 | 
				
			||||||
 | 
					//-------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//-------------------------------------------------------------------
 | 
				
			||||||
 | 
					//------------------------GPIO LED FUNCTIONS-------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief  Включить светодиод 
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void GPIO_LED_On(GPIO_LEDTypeDef *led)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  led->state = LED_IS_ON;
 | 
				
			||||||
 | 
					  HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, LED_ON);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief  Выключить светодиод 
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void GPIO_LED_Off(GPIO_LEDTypeDef *led)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  led->state = LED_IS_OFF;
 | 
				
			||||||
 | 
					  HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, LED_OFF);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief Активировать моргание светодиодом
 | 
				
			||||||
 | 
						*/
 | 
				
			||||||
 | 
					void GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  led->state = LED_IS_BLINKING;
 | 
				
			||||||
 | 
					  led->LED_Period = period;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief Моргание светодиодом
 | 
				
			||||||
 | 
						*/
 | 
				
			||||||
 | 
					void GPIO_LED_Blink_Handle(GPIO_LEDTypeDef *led)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if(led->state == LED_IS_BLINKING)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    uint32_t tickcurrent = HAL_GetTick();
 | 
				
			||||||
 | 
					    if((tickcurrent - led->tickprev) > led->LED_Period)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      HAL_GPIO_TogglePin(led->LED_Port, led->LED_Pin);
 | 
				
			||||||
 | 
					      led->tickprev = tickcurrent;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					//------------------------GPIO LED FUNCTIONS-------------------------
 | 
				
			||||||
 | 
					//-------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//-------------------------------------------------------------------
 | 
				
			||||||
 | 
					//------------------------GPIO SW FUNCTIONS-------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief Считать состоянии кнопки запуска 
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					uint8_t GPIO_Read_Swich(GPIO_SwitchTypeDef *sw)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if(HAL_GPIO_ReadPin(sw->Sw_Port, sw->Sw_Pin) == SW_ON)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    sw->Sw_PrevState = 1;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if(sw->tickprev == 0)
 | 
				
			||||||
 | 
					      sw->tickprev = HAL_GetTick();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if((HAL_GetTick() - sw->tickprev) > sw->Sw_FilterDelay)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      if(HAL_GPIO_ReadPin(sw->Sw_Port, sw->Sw_Pin) == SW_ON)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        return 1;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        sw->tickprev = 0;
 | 
				
			||||||
 | 
					        return 0;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    sw->Sw_PrevState = 0;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					//------------------------GPIO SW FUNCTIONS-------------------------
 | 
				
			||||||
 | 
					//-------------------------------------------------------------------
 | 
				
			||||||
							
								
								
									
										72
									
								
								diode_tester/Core/MyLibs/general_gpio.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								diode_tester/Core/MyLibs/general_gpio.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,72 @@
 | 
				
			|||||||
 | 
					/** 
 | 
				
			||||||
 | 
						**************************************************************************
 | 
				
			||||||
 | 
						* @file general_gpio.h
 | 
				
			||||||
 | 
						* @brief Заголовочный файл для модуля инициализации портов.
 | 
				
			||||||
 | 
						*************************************************************************/
 | 
				
			||||||
 | 
					#ifndef __GPIO_GENERAL_H_
 | 
				
			||||||
 | 
					#define __GPIO_GENERAL_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "mylibs_defs.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SPI_Alternate_Mapping(INSTANCE) 			 ((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: 																										\
 | 
				
			||||||
 | 
																													(((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3:  													\
 | 
				
			||||||
 | 
																													(((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8:  \
 | 
				
			||||||
 | 
																													(((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: 												\
 | 
				
			||||||
 | 
																													(0))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TIM_Alternate_Mapping(INSTANCE) 			 ((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: 																										\
 | 
				
			||||||
 | 
																													(((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3:  													\
 | 
				
			||||||
 | 
																													(((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8:  \
 | 
				
			||||||
 | 
																													(((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: 												\
 | 
				
			||||||
 | 
																													(0))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  LED_IS_OFF = 0,
 | 
				
			||||||
 | 
					  LED_IS_ON = 1,
 | 
				
			||||||
 | 
					  LED_IS_BLINKING = 2,
 | 
				
			||||||
 | 
					  LED_IS_FADING = 3,
 | 
				
			||||||
 | 
					}GPIO_LEDStateTypeDef;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GPIO_LEDStateTypeDef state;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  GPIO_TypeDef  *LED_Port;
 | 
				
			||||||
 | 
					  uint32_t      LED_Pin;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  uint32_t      LED_Period;
 | 
				
			||||||
 | 
					  uint32_t      tickprev;
 | 
				
			||||||
 | 
					}GPIO_LEDTypeDef;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GPIO_TypeDef  *Sw_Port;
 | 
				
			||||||
 | 
					  uint32_t      Sw_Pin;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  uint32_t      Sw_PrevState;
 | 
				
			||||||
 | 
					  uint32_t      Sw_FilterDelay;
 | 
				
			||||||
 | 
					  uint32_t      tickprev;
 | 
				
			||||||
 | 
					}GPIO_SwitchTypeDef;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					///////////////////////////---FUNCTIONS---///////////////////////////
 | 
				
			||||||
 | 
					HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Считать состоянии кнопки запуска */
 | 
				
			||||||
 | 
					uint8_t GPIO_Read_Swich(GPIO_SwitchTypeDef *swstart);
 | 
				
			||||||
 | 
					/* Включить светодиод */
 | 
				
			||||||
 | 
					void GPIO_LED_On(GPIO_LEDTypeDef *led);
 | 
				
			||||||
 | 
					/* Выключить светодиод */
 | 
				
			||||||
 | 
					void GPIO_LED_Off(GPIO_LEDTypeDef *led);
 | 
				
			||||||
 | 
					/* Активировать моргание светодиодом */
 | 
				
			||||||
 | 
					void GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period);
 | 
				
			||||||
 | 
					/* Моргание светодиодом */
 | 
				
			||||||
 | 
					void GPIO_LED_Blink_Handle(GPIO_LEDTypeDef *led);
 | 
				
			||||||
 | 
					///////////////////////////---FUNCTIONS---///////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // __GPIO_GENERAL_H_
 | 
				
			||||||
@ -64,6 +64,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "main.h"
 | 
					#include "main.h"
 | 
				
			||||||
#include "modbus_data.h"
 | 
					#include "modbus_data.h"
 | 
				
			||||||
 | 
					#include "general_gpio.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** @brief Struct for trackers for Measure */
 | 
					/** @brief Struct for trackers for Measure */
 | 
				
			||||||
/** @brief Struct for trackers for RS */
 | 
					/** @brief Struct for trackers for RS */
 | 
				
			||||||
 | 
				
			|||||||
@ -4,108 +4,37 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief Инициализация структур интерфейса 
 | 
					  * @brief Инициализация структур интерфейса 
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
void TESTER_InterfaceInit(TESTER_SwitchStartTypeDef *swstart, TESTER_LEDsTypeDef *leds)
 | 
					void TESTER_InterfaceInit(GPIO_SwitchTypeDef *swstart, TESTER_LEDsTypeDef *leds)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
* @brief Включить индикацию таймаута старта при активации теста
 | 
					* @brief Включить индикацию таймаута старта при активации теста
 | 
				
			||||||
	*/
 | 
						*/
 | 
				
			||||||
void TESTER_LED_TimeoutForStartTest(TESTER_LEDTypeDef *led)
 | 
					void TESTER_LED_TimeoutForStartTest(GPIO_LEDTypeDef *led)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TESTER_LED_Off(led);
 | 
					  GPIO_LED_Off(led);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief Включить индикацию прямого подключения диода
 | 
					  * @brief Включить индикацию прямого подключения диода
 | 
				
			||||||
	*/
 | 
						*/
 | 
				
			||||||
void TESTER_LED_TestingDiodeForward(TESTER_LEDTypeDef *led)
 | 
					void TESTER_LED_TestingDiodeForward(GPIO_LEDTypeDef *led)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  led->state = LED_IS_BLINKING;
 | 
					  GPIO_LED_Blink_Start(led, LED_FORWARD_DIODE_PERIOD);
 | 
				
			||||||
  led->period = LED_FORWARD_DIODE_PERIOD;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief Включить индикацию обратного подключения диода
 | 
					  * @brief Включить индикацию обратного подключения диода
 | 
				
			||||||
	*/
 | 
						*/
 | 
				
			||||||
void TESTER_LED_TestingDiodeReverse(TESTER_LEDTypeDef *led)
 | 
					void TESTER_LED_TestingDiodeReverse(GPIO_LEDTypeDef *led)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  led->state = LED_IS_BLINKING;
 | 
					  GPIO_LED_Blink_Start(led, LED_REVERSE_DIODE_PERIOD);
 | 
				
			||||||
  led->period = LED_REVERSE_DIODE_PERIOD;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
  * @brief Выключить индикацию ожидания комманды
 | 
					  * @brief Выключить индикацию ожидания комманды
 | 
				
			||||||
  * @details Сделано через моргание, чтобы понимать, что системные тики работают
 | 
					  * @details Сделано через моргание, чтобы понимать, что системные тики работают
 | 
				
			||||||
	*/
 | 
						*/
 | 
				
			||||||
void TESTER_LED_WaitForAction(TESTER_LEDTypeDef *led)
 | 
					void TESTER_LED_WaitForAction(GPIO_LEDTypeDef *led)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  led->state = LED_IS_BLINKING;
 | 
					  GPIO_LED_Blink_Start(led, LED_BLINK_AS_ON);
 | 
				
			||||||
  led->period = LED_BLINK_AS_ON;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
  * @brief Считать состоянии кнопки запуска 
 | 
					 | 
				
			||||||
  */
 | 
					 | 
				
			||||||
uint8_t TESTER_ReadSwichStart(TESTER_SwitchStartTypeDef *swstart)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if(HAL_GPIO_ReadPin(swstart->Sw_Port, swstart->Sw_Pin) == SW_ON)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    if(swstart->tickprev == 0)
 | 
					 | 
				
			||||||
      swstart->tickprev = HAL_GetTick();
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    if((HAL_GetTick() - swstart->tickprev) > swstart->Sw_FilterDelay)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      if(HAL_GPIO_ReadPin(swstart->Sw_Port, swstart->Sw_Pin) == SW_ON)
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        swstart->tickprev = 0;
 | 
					 | 
				
			||||||
        return 0;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
  * @brief  Включить светодиод 
 | 
					 | 
				
			||||||
  */
 | 
					 | 
				
			||||||
void TESTER_LED_On(TESTER_LEDTypeDef *led)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  led->state = LED_IS_ON;
 | 
					 | 
				
			||||||
  HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, LED_ON);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
  * @brief  Выключить светодиод 
 | 
					 | 
				
			||||||
  */
 | 
					 | 
				
			||||||
void TESTER_LED_Off(TESTER_LEDTypeDef *led)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  led->state = LED_IS_OFF;
 | 
					 | 
				
			||||||
  HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, LED_OFF);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
  * @brief Активировать моргание светодиодом
 | 
					 | 
				
			||||||
	*/
 | 
					 | 
				
			||||||
void TESTER_LED_Blink_Start(TESTER_LEDTypeDef *led)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  led->state = LED_IS_BLINKING;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
  * @brief Моргание светодиодом
 | 
					 | 
				
			||||||
	*/
 | 
					 | 
				
			||||||
void TESTER_LEDBlink_Handle(TESTER_LEDTypeDef *led)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  if(led->state == LED_IS_BLINKING)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    uint32_t tickcurrent = HAL_GetTick();
 | 
					 | 
				
			||||||
    if((tickcurrent - led->tickprev) > led->period)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      HAL_GPIO_TogglePin(led->LED_Port, led->LED_Pin);
 | 
					 | 
				
			||||||
      led->tickprev = tickcurrent;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -14,64 +14,26 @@
 | 
				
			|||||||
#include "mylibs_include.h"
 | 
					#include "mylibs_include.h"
 | 
				
			||||||
#include "rs_message.h"
 | 
					#include "rs_message.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef enum
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  LED_IS_OFF = 0,
 | 
					 | 
				
			||||||
  LED_IS_ON = 1,
 | 
					 | 
				
			||||||
  LED_IS_BLINKING = 2,
 | 
					 | 
				
			||||||
}TESTER_LEDStateTypeDef;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typedef struct
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  TESTER_LEDStateTypeDef state;
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  GPIO_TypeDef  *LED_Port;
 | 
					 | 
				
			||||||
  uint32_t      LED_Pin;
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  uint32_t      tickprev;
 | 
					 | 
				
			||||||
  uint32_t      period;
 | 
					 | 
				
			||||||
}TESTER_LEDTypeDef;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct
 | 
					typedef struct
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TESTER_LEDTypeDef LED1;
 | 
					  GPIO_LEDTypeDef LED1;
 | 
				
			||||||
}TESTER_LEDsTypeDef;
 | 
					}TESTER_LEDsTypeDef;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  GPIO_TypeDef  *Sw_Port;
 | 
					 | 
				
			||||||
  uint32_t      Sw_Pin;
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  uint32_t      Sw_PrevState;
 | 
					 | 
				
			||||||
  uint32_t      Sw_FilterDelay;
 | 
					 | 
				
			||||||
  uint32_t      tickprev;
 | 
					 | 
				
			||||||
}TESTER_SwitchStartTypeDef;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Инициализация структур интерфейса */
 | 
					/* Инициализация структур интерфейса */
 | 
				
			||||||
void TESTER_InterfaceInit(TESTER_SwitchStartTypeDef *swstart, TESTER_LEDsTypeDef *leds);
 | 
					void TESTER_InterfaceInit(GPIO_SwitchTypeDef *swstart, TESTER_LEDsTypeDef *leds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Включить индикацию таймаута старта при активации теста */
 | 
					/* Включить индикацию таймаута старта при активации теста */
 | 
				
			||||||
void TESTER_LED_TimeoutForStartTest(TESTER_LEDTypeDef *led);
 | 
					void TESTER_LED_TimeoutForStartTest(GPIO_LEDTypeDef *led);
 | 
				
			||||||
/* Включить индикацию прямого подключения диода */
 | 
					/* Включить индикацию прямого подключения диода */
 | 
				
			||||||
void TESTER_LED_TestingDiodeForward(TESTER_LEDTypeDef *led);
 | 
					void TESTER_LED_TestingDiodeForward(GPIO_LEDTypeDef *led);
 | 
				
			||||||
/* Включить индикацию обратного подключения диода */
 | 
					/* Включить индикацию обратного подключения диода */
 | 
				
			||||||
void TESTER_LED_TestingDiodeReverse(TESTER_LEDTypeDef *led);
 | 
					void TESTER_LED_TestingDiodeReverse(GPIO_LEDTypeDef *led);
 | 
				
			||||||
/* Выключить индикацию активного теста диодов */
 | 
					/* Выключить индикацию активного теста диодов */
 | 
				
			||||||
void TESTER_LED_WaitForAction(TESTER_LEDTypeDef *led);
 | 
					void TESTER_LED_WaitForAction(GPIO_LEDTypeDef *led);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Считать состоянии кнопки запуска */
 | 
					 | 
				
			||||||
uint8_t TESTER_ReadSwichStart(TESTER_SwitchStartTypeDef *swstart);
 | 
					 | 
				
			||||||
/* Включить светодиод */
 | 
					 | 
				
			||||||
void TESTER_LED_On(TESTER_LEDTypeDef *led);
 | 
					 | 
				
			||||||
/* Выключить светодиод */
 | 
					 | 
				
			||||||
void TESTER_LED_Off(TESTER_LEDTypeDef *led);
 | 
					 | 
				
			||||||
/* Активировать моргание светодиодом */
 | 
					 | 
				
			||||||
void TESTER_LED_Blink_Start(TESTER_LEDTypeDef *led);
 | 
					 | 
				
			||||||
/* Моргание светодиодом */
 | 
					 | 
				
			||||||
void TESTER_LEDBlink_Handle(TESTER_LEDTypeDef *led);
 | 
					 | 
				
			||||||
#endif //_TESTER_INTERFACE_FUNC_H_
 | 
					#endif //_TESTER_INTERFACE_FUNC_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ TESTER_ProjectTypeDef TESTER = {0};
 | 
				
			|||||||
void TESTER_Init(TESTER_ProjectTypeDef *tester)
 | 
					void TESTER_Init(TESTER_ProjectTypeDef *tester)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TESTER_InterfaceInit(&tester->SwStart, &tester->leds);
 | 
					  TESTER_InterfaceInit(&tester->SwStart, &tester->leds);
 | 
				
			||||||
  tester->leds.LED1.period = 100;
 | 
					  GPIO_LED_Blink_Start(&tester->leds.LED1, 100);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  tester->delay = 250;
 | 
					  tester->delay = 250;
 | 
				
			||||||
  tester->delay_en = 0;
 | 
					  tester->delay_en = 0;
 | 
				
			||||||
@ -34,9 +34,11 @@ void TESTER_pre_while(TESTER_ProjectTypeDef *tester)
 | 
				
			|||||||
  TESTER_UpdateSettings(tester->htest, tester->mbdata);
 | 
					  TESTER_UpdateSettings(tester->htest, tester->mbdata);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  RS_Receive_IT(tester->hmodbus, &MODBUS_MSG);
 | 
					  RS_Receive_IT(tester->hmodbus, &MODBUS_MSG);
 | 
				
			||||||
  tester->leds.LED1.period = LED_BLINK_AS_ON;
 | 
					 | 
				
			||||||
  tester->f.flag_init_done = 1;
 | 
					 | 
				
			||||||
  HAL_TIM_Base_Start(&hmcstim);
 | 
					  HAL_TIM_Base_Start(&hmcstim);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  tester->f.flag_init_done = 1;
 | 
				
			||||||
 | 
					  GPIO_LED_Blink_Start(&tester->leds.LED1, LED_BLINK_AS_ON);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -123,7 +125,7 @@ void TESTER_InterfaceHandle(TESTER_ProjectTypeDef *tester)
 | 
				
			|||||||
  tester->mode = *((TESTER_TestModeTypeDef *)&tester->mbdata->Coils) & 0x3;
 | 
					  tester->mode = *((TESTER_TestModeTypeDef *)&tester->mbdata->Coils) & 0x3;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  /* если кнопка нажата или пришла соответствующая комманда модбас */
 | 
					  /* если кнопка нажата или пришла соответствующая комманда модбас */
 | 
				
			||||||
  if(TESTER_ReadSwichStart(&tester->SwStart) || tester->mbdata->Coils.StartTest)
 | 
					  if(GPIO_Read_Swich(&tester->SwStart) || tester->mbdata->Coils.StartTest)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    tester->mbdata->Coils.StartTest = 0;
 | 
					    tester->mbdata->Coils.StartTest = 0;
 | 
				
			||||||
    /* Обновление настроек тестера */
 | 
					    /* Обновление настроек тестера */
 | 
				
			||||||
@ -148,7 +150,7 @@ void TESTER_InterfaceHandle(TESTER_ProjectTypeDef *tester)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  TESTER_LEDBlink_Handle(&tester->leds.LED1);
 | 
					  GPIO_LED_Blink_Handle(&tester->leds.LED1);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -199,9 +201,7 @@ void TESTER_Set_Default_Settings(TESTER_ProjectTypeDef *tester)
 | 
				
			|||||||
  
 | 
					  
 | 
				
			||||||
  /* Настройка пинов для светодиода*/
 | 
					  /* Настройка пинов для светодиода*/
 | 
				
			||||||
  tester->leds.LED1.LED_Port        = LED1_Port;
 | 
					  tester->leds.LED1.LED_Port        = LED1_Port;
 | 
				
			||||||
  tester->leds.LED1.LED_Pin         = LED1_Pin;
 | 
					  tester->leds.LED1.LED_Pin         = LED1_Pin;  
 | 
				
			||||||
  tester->leds.LED1.period          = LED_BLINK_AS_ON;
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  /* Настройка таймингов по умолчанию для тестирования */
 | 
					  /* Настройка таймингов по умолчанию для тестирования */
 | 
				
			||||||
  tester->mbdata->HoldRegs.TimeForForward          = DEF_MS_TIME_FOR_POSITIVE;
 | 
					  tester->mbdata->HoldRegs.TimeForForward          = DEF_MS_TIME_FOR_POSITIVE;
 | 
				
			||||||
 | 
				
			|||||||
@ -59,7 +59,7 @@ typedef struct
 | 
				
			|||||||
  MB_DataStructureTypeDef     *mbdata;
 | 
					  MB_DataStructureTypeDef     *mbdata;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  TESTER_SwitchStartTypeDef   SwStart;  ///< структура кнопки старта
 | 
					  GPIO_SwitchTypeDef          SwStart;  ///< структура кнопки старта
 | 
				
			||||||
  TESTER_LEDsTypeDef          leds;     ///< структура светодиодов
 | 
					  TESTER_LEDsTypeDef          leds;     ///< структура светодиодов
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
				
			|||||||
@ -576,7 +576,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  <Group>
 | 
					  <Group>
 | 
				
			||||||
    <GroupName>MyLibs</GroupName>
 | 
					    <GroupName>MyLibs</GroupName>
 | 
				
			||||||
    <tvExp>0</tvExp>
 | 
					    <tvExp>1</tvExp>
 | 
				
			||||||
    <tvExpOptDlg>0</tvExpOptDlg>
 | 
					    <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
    <cbSel>0</cbSel>
 | 
					    <cbSel>0</cbSel>
 | 
				
			||||||
    <RteFlg>0</RteFlg>
 | 
					    <RteFlg>0</RteFlg>
 | 
				
			||||||
@ -628,6 +628,30 @@
 | 
				
			|||||||
      <RteFlg>0</RteFlg>
 | 
					      <RteFlg>0</RteFlg>
 | 
				
			||||||
      <bShared>0</bShared>
 | 
					      <bShared>0</bShared>
 | 
				
			||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
 | 
					    <File>
 | 
				
			||||||
 | 
					      <GroupNumber>4</GroupNumber>
 | 
				
			||||||
 | 
					      <FileNumber>24</FileNumber>
 | 
				
			||||||
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
 | 
					      <bDave2>0</bDave2>
 | 
				
			||||||
 | 
					      <PathWithFileName>..\Core\MyLibs\general_gpio.c</PathWithFileName>
 | 
				
			||||||
 | 
					      <FilenameWithoutPath>general_gpio.c</FilenameWithoutPath>
 | 
				
			||||||
 | 
					      <RteFlg>0</RteFlg>
 | 
				
			||||||
 | 
					      <bShared>0</bShared>
 | 
				
			||||||
 | 
					    </File>
 | 
				
			||||||
 | 
					    <File>
 | 
				
			||||||
 | 
					      <GroupNumber>4</GroupNumber>
 | 
				
			||||||
 | 
					      <FileNumber>25</FileNumber>
 | 
				
			||||||
 | 
					      <FileType>5</FileType>
 | 
				
			||||||
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
 | 
					      <bDave2>0</bDave2>
 | 
				
			||||||
 | 
					      <PathWithFileName>..\Core\MyLibs\general_gpio.h</PathWithFileName>
 | 
				
			||||||
 | 
					      <FilenameWithoutPath>general_gpio.h</FilenameWithoutPath>
 | 
				
			||||||
 | 
					      <RteFlg>0</RteFlg>
 | 
				
			||||||
 | 
					      <bShared>0</bShared>
 | 
				
			||||||
 | 
					    </File>
 | 
				
			||||||
  </Group>
 | 
					  </Group>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <Group>
 | 
					  <Group>
 | 
				
			||||||
@ -638,7 +662,7 @@
 | 
				
			|||||||
    <RteFlg>0</RteFlg>
 | 
					    <RteFlg>0</RteFlg>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>5</GroupNumber>
 | 
					      <GroupNumber>5</GroupNumber>
 | 
				
			||||||
      <FileNumber>24</FileNumber>
 | 
					      <FileNumber>26</FileNumber>
 | 
				
			||||||
      <FileType>2</FileType>
 | 
					      <FileType>2</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -658,7 +682,7 @@
 | 
				
			|||||||
    <RteFlg>0</RteFlg>
 | 
					    <RteFlg>0</RteFlg>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>6</GroupNumber>
 | 
					      <GroupNumber>6</GroupNumber>
 | 
				
			||||||
      <FileNumber>25</FileNumber>
 | 
					      <FileNumber>27</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -670,7 +694,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>6</GroupNumber>
 | 
					      <GroupNumber>6</GroupNumber>
 | 
				
			||||||
      <FileNumber>26</FileNumber>
 | 
					      <FileNumber>28</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -682,7 +706,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>6</GroupNumber>
 | 
					      <GroupNumber>6</GroupNumber>
 | 
				
			||||||
      <FileNumber>27</FileNumber>
 | 
					      <FileNumber>29</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -694,7 +718,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>6</GroupNumber>
 | 
					      <GroupNumber>6</GroupNumber>
 | 
				
			||||||
      <FileNumber>28</FileNumber>
 | 
					      <FileNumber>30</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -706,7 +730,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>6</GroupNumber>
 | 
					      <GroupNumber>6</GroupNumber>
 | 
				
			||||||
      <FileNumber>29</FileNumber>
 | 
					      <FileNumber>31</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -718,7 +742,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>6</GroupNumber>
 | 
					      <GroupNumber>6</GroupNumber>
 | 
				
			||||||
      <FileNumber>30</FileNumber>
 | 
					      <FileNumber>32</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -730,7 +754,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>6</GroupNumber>
 | 
					      <GroupNumber>6</GroupNumber>
 | 
				
			||||||
      <FileNumber>31</FileNumber>
 | 
					      <FileNumber>33</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -742,7 +766,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>6</GroupNumber>
 | 
					      <GroupNumber>6</GroupNumber>
 | 
				
			||||||
      <FileNumber>32</FileNumber>
 | 
					      <FileNumber>34</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -762,7 +786,7 @@
 | 
				
			|||||||
    <RteFlg>0</RteFlg>
 | 
					    <RteFlg>0</RteFlg>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>33</FileNumber>
 | 
					      <FileNumber>35</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -774,7 +798,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>34</FileNumber>
 | 
					      <FileNumber>36</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -786,7 +810,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>35</FileNumber>
 | 
					      <FileNumber>37</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -798,7 +822,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>36</FileNumber>
 | 
					      <FileNumber>38</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -810,7 +834,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>37</FileNumber>
 | 
					      <FileNumber>39</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -822,7 +846,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>38</FileNumber>
 | 
					      <FileNumber>40</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -834,7 +858,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>39</FileNumber>
 | 
					      <FileNumber>41</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -846,7 +870,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>40</FileNumber>
 | 
					      <FileNumber>42</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -858,7 +882,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>41</FileNumber>
 | 
					      <FileNumber>43</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -870,7 +894,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>42</FileNumber>
 | 
					      <FileNumber>44</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -882,7 +906,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>43</FileNumber>
 | 
					      <FileNumber>45</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -894,7 +918,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>44</FileNumber>
 | 
					      <FileNumber>46</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -906,7 +930,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>45</FileNumber>
 | 
					      <FileNumber>47</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -918,7 +942,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>46</FileNumber>
 | 
					      <FileNumber>48</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -930,7 +954,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>47</FileNumber>
 | 
					      <FileNumber>49</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -942,7 +966,7 @@
 | 
				
			|||||||
    </File>
 | 
					    </File>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>7</GroupNumber>
 | 
					      <GroupNumber>7</GroupNumber>
 | 
				
			||||||
      <FileNumber>48</FileNumber>
 | 
					      <FileNumber>50</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
@ -962,7 +986,7 @@
 | 
				
			|||||||
    <RteFlg>0</RteFlg>
 | 
					    <RteFlg>0</RteFlg>
 | 
				
			||||||
    <File>
 | 
					    <File>
 | 
				
			||||||
      <GroupNumber>8</GroupNumber>
 | 
					      <GroupNumber>8</GroupNumber>
 | 
				
			||||||
      <FileNumber>49</FileNumber>
 | 
					      <FileNumber>51</FileNumber>
 | 
				
			||||||
      <FileType>1</FileType>
 | 
					      <FileType>1</FileType>
 | 
				
			||||||
      <tvExp>0</tvExp>
 | 
					      <tvExp>0</tvExp>
 | 
				
			||||||
      <tvExpOptDlg>0</tvExpOptDlg>
 | 
					      <tvExpOptDlg>0</tvExpOptDlg>
 | 
				
			||||||
 | 
				
			|||||||
@ -515,6 +515,16 @@
 | 
				
			|||||||
              <FileType>5</FileType>
 | 
					              <FileType>5</FileType>
 | 
				
			||||||
              <FilePath>..\Core\MyLibs\trackers.h</FilePath>
 | 
					              <FilePath>..\Core\MyLibs\trackers.h</FilePath>
 | 
				
			||||||
            </File>
 | 
					            </File>
 | 
				
			||||||
 | 
					            <File>
 | 
				
			||||||
 | 
					              <FileName>general_gpio.c</FileName>
 | 
				
			||||||
 | 
					              <FileType>1</FileType>
 | 
				
			||||||
 | 
					              <FilePath>..\Core\MyLibs\general_gpio.c</FilePath>
 | 
				
			||||||
 | 
					            </File>
 | 
				
			||||||
 | 
					            <File>
 | 
				
			||||||
 | 
					              <FileName>general_gpio.h</FileName>
 | 
				
			||||||
 | 
					              <FileType>5</FileType>
 | 
				
			||||||
 | 
					              <FilePath>..\Core\MyLibs\general_gpio.h</FilePath>
 | 
				
			||||||
 | 
					            </File>
 | 
				
			||||||
          </Files>
 | 
					          </Files>
 | 
				
			||||||
        </Group>
 | 
					        </Group>
 | 
				
			||||||
        <Group>
 | 
					        <Group>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								docs/mb_adr.xlsx
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/mb_adr.xlsx
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user