#3 Добавлен простейший интерфейс: одна кнопка и один диод. Пока интерфейс управляется через прерывание в SysTick

При нажатии на кнопку включается тест с переходом от положительного напряжения к отрицатльному.

Индикация светодиода:
- постоянно горит - ожидание команды
- моргание (250 мс) - прямое подключение диода
- моргание (25 мс) - обратое подключение диода
This commit is contained in:
Razvalyaev 2024-12-19 15:26:22 +03:00
parent 13825e068c
commit a5704ae4be
12 changed files with 371 additions and 71 deletions

View File

@ -63,6 +63,12 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PC14 */
GPIO_InitStruct.Pin = GPIO_PIN_14;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pins : PB0 PB1 PB10 PB11 */ /*Configure GPIO pins : PB0 PB1 PB10 PB11 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_10|GPIO_PIN_11; GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_10|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

View File

@ -22,7 +22,7 @@
#include "stm32f1xx_it.h" #include "stm32f1xx_it.h"
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include "tester_adc_func.h" #include "tester_main.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
@ -188,7 +188,7 @@ void PendSV_Handler(void)
void SysTick_Handler(void) void SysTick_Handler(void)
{ {
/* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE BEGIN SysTick_IRQn 0 */
TESTER_InterfaceHandle(&TESTER);
/* USER CODE END SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */
HAL_IncTick(); HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE BEGIN SysTick_IRQn 1 */
@ -237,7 +237,7 @@ void TIM2_IRQHandler(void)
void TIM3_IRQHandler(void) void TIM3_IRQHandler(void)
{ {
/* USER CODE BEGIN TIM3_IRQn 0 */ /* USER CODE BEGIN TIM3_IRQn 0 */
HAL_NVIC_ClearPendingIRQ(TIM3_IRQn);
/* USER CODE END TIM3_IRQn 0 */ /* USER CODE END TIM3_IRQn 0 */
HAL_TIM_IRQHandler(&htim3); HAL_TIM_IRQHandler(&htim3);
/* USER CODE BEGIN TIM3_IRQn 1 */ /* USER CODE BEGIN TIM3_IRQn 1 */

View File

@ -14,6 +14,44 @@
#define TESTER_PULES_EXPETCED_WIDTH 4 ///< Предполагаемая длительность пика в отчетах ацп #define TESTER_PULES_EXPETCED_WIDTH 4 ///< Предполагаемая длительность пика в отчетах ацп
/**
* @addtogroup TESTER_INTERFACE_CONFIG Configs for interface of tester
* @ingroup TESTER_CONFIGS
* @brief Конфигурации для интерфейса тестера
@{
*/
/* Дефайны для светодиодов */
/* Состояния включенного и выключенного светодиода */
#define LED_ON 0 ///< Состояние включенного светодиода
#define LED_OFF 1 ///< Состояние выключенного светодиода
#define LED1_Port GPIOC ///< Порт светодиода (при перенастройке надо также перенастроить через cube)
#define LED1_Pin GPIO_PIN_13 ///< Пин светодиода (при перенастройке надо также перенастроить через cube)
/* Периоды моргания светодиода */
#define LED_POSITIVE_DIODE_PERIOD 250 ///< Моргание для индикации подключенного положительного напряжения
#define LED_NEGATIVE_DIODE_PERIOD 25 ///< Моргание для индикации подключенного отрицательного напряжения
#define LED_BLINK_AS_ON 5 ///< Моргание незаметное для глаза (светодиод просто включен)
/* Дефайны для кнопки */
/* Состояния нажатой и отжатой кнопки */
#define SW_ON 1 ///< Состояние нажатой кнопки
#define SW_OFF 0 ///< Состояние отжатой кнопки
/* Пин кнопки при перенастройке надо также перенастроить через cube) */
#define SWITCH_START_Port GPIOC ///< Порт кнокпи старта (при перенастройке надо также перенастроить через cube)
#define SWITCH_START_Pin GPIO_PIN_14 ///< Пин кнокпи старта (при перенастройке надо также перенастроить через cube)
/* Задержка для компенсации дребезга (в миллисекундах) */
#define SWITCH_ANTI_DREBEZG_DELAY 50 ///< Время которое выжидается для окончания дребезга
/** TESTER_INTERFACE_CONFIG
* @}
*/
/** /**
* @addtogroup TESTER_SW_TIMINGS_CONFIG Configs for switching timings * @addtogroup TESTER_SW_TIMINGS_CONFIG Configs for switching timings
* @ingroup TESTER_CONFIGS * @ingroup TESTER_CONFIGS
@ -70,12 +108,14 @@
#define POWER_DISCONNECT 0 ///< Питание отключено в данном состоянии пина #define POWER_DISCONNECT 0 ///< Питание отключено в данном состоянии пина
/* Ключи для подключения положительного питания к диоду */ /* Ключи для подключения положительного питания к диоду */
/* (при перенастройке надо также перенастроить через cube) */
#define SWITCH_DC_POSITIVE_Port GPIOB ///< Порт пина первого ключа для земли положительного источника питания #define SWITCH_DC_POSITIVE_Port GPIOB ///< Порт пина первого ключа для земли положительного источника питания
#define SWITCH_DC_POSITIVE_GND_Pin GPIO_PIN_10 ///< Пин первого ключа для земли положительного источника питания #define SWITCH_DC_POSITIVE_GND_Pin GPIO_PIN_10 ///< Пин первого ключа для земли положительного источника питания
#define SWITCH_DC_POSITIVE_VDD_Pin GPIO_PIN_11 ///< Пин второго ключа для напряжения положительного источника ппитания #define SWITCH_DC_POSITIVE_VDD_Pin GPIO_PIN_11 ///< Пин второго ключа для напряжения положительного источника ппитания
/* Ключи для подключения отрицательного питания к диоду */ /* Ключи для подключения отрицательного питания к диоду */
/* (при перенастройке надо также перенастроить через cube) */
#define SWITCH_DC_NEGATIVE_Port GPIOB ///< Порт пина первого ключа для земли отрицательного источника ппитания #define SWITCH_DC_NEGATIVE_Port GPIOB ///< Порт пина первого ключа для земли отрицательного источника ппитания
#define SWITCH_DC_NEGATIVE_GND_Pin GPIO_PIN_0 ///< Пин первого ключа для земли отрицательного источника ппитания #define SWITCH_DC_NEGATIVE_GND_Pin GPIO_PIN_0 ///< Пин первого ключа для земли отрицательного источника ппитания
#define SWITCH_DC_NEGATIVE_VDD_Pin GPIO_PIN_1 ///< Пин первого ключа для напряжения отрицательного источника ппитания #define SWITCH_DC_NEGATIVE_VDD_Pin GPIO_PIN_1 ///< Пин первого ключа для напряжения отрицательного источника ппитания

View File

@ -5,10 +5,11 @@ TESTER_TestHandleTypeDef hTestDiode;
/**s /**s
* @brief Инициализация хендла тестера диодов * @brief Инициализация хендла тестера диодов
*/ */
void TESTER_HandleInit(TESTER_TestHandleTypeDef *htest) void TESTER_HandleInit(TESTER_TestHandleTypeDef *htest, TESTER_LEDsTypeDef *leds)
{ {
/* Настройка структуры АЦП */ /* Настройка структуры АЦП */
htest->adc = &tester_adc; htest->adc = &tester_adc;
htest->leds = leds;
TESTER_ADC_StructInit(htest->adc); TESTER_ADC_StructInit(htest->adc);
/* Настройка пинов для подключения отрицательного источника */ /* Настройка пинов для подключения отрицательного источника */
@ -46,6 +47,7 @@ void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest)
{ {
/* Задержка, перед началом работы */ /* Задержка, перед началом работы */
TESTER_Delay(&htest->SwTimings.ticks_before_test); TESTER_Delay(&htest->SwTimings.ticks_before_test);
TESTER_LED_TestingDiode_Positive(&htest->leds->LED1);
/* Включение континиус АЦП */ /* Включение континиус АЦП */
HAL_ADC_Start(htest->adc->hadc); HAL_ADC_Start(htest->adc->hadc);
@ -72,6 +74,7 @@ void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest)
/* Выключение континиус АЦП */ /* Выключение континиус АЦП */
HAL_ADC_Stop(htest->adc->hadc); HAL_ADC_Stop(htest->adc->hadc);
TESTER_LED_TestingDiode_End(&htest->leds->LED1);
} }
/** /**
@ -81,6 +84,7 @@ void TESTER_TestDiode_NegativePower(TESTER_TestHandleTypeDef *htest)
{ {
/* Задержка, перед началом работы */ /* Задержка, перед началом работы */
TESTER_Delay(&htest->SwTimings.ticks_before_test); TESTER_Delay(&htest->SwTimings.ticks_before_test);
TESTER_LED_TestingDiode_Negative(&htest->leds->LED1);
/* Включение АЦП */ /* Включение АЦП */
ADC_DMA_StartRead(htest->adc); ADC_DMA_StartRead(htest->adc);
@ -100,6 +104,7 @@ void TESTER_TestDiode_NegativePower(TESTER_TestHandleTypeDef *htest)
/* Обработка DMA */ /* Обработка DMA */
ADC_DMA_ReadForPeak(htest->adc, ADC_READ_TIMEOUT_MS); ADC_DMA_ReadForPeak(htest->adc, ADC_READ_TIMEOUT_MS);
TESTER_LED_TestingDiode_End(&htest->leds->LED1);
} }
@ -110,12 +115,14 @@ void TESTER_TestDiode_PosNegPower(TESTER_TestHandleTypeDef *htest)
{ {
/* Задержка, перед началом работы */ /* Задержка, перед началом работы */
TESTER_Delay(&htest->SwTimings.ticks_before_test); TESTER_Delay(&htest->SwTimings.ticks_before_test);
TESTER_LED_TestingDiode_Positive(&htest->leds->LED1);
/* Подкючение питания к диоду */ /* Подкючение питания к диоду */
TESTER_Connect_Power(&htest->DCPosSw); TESTER_Connect_Power(&htest->DCPosSw);
/* Подкючение положительного питания к диоду */ /* Подкючение положительного питания к диоду */
msDelay(htest->SwTimings.msticks_for_positive_dc); msDelay(htest->SwTimings.msticks_for_positive_dc);
TESTER_LED_TestingDiode_Negative(&htest->leds->LED1);
/* Включение АЦП */ /* Включение АЦП */
ADC_DMA_StartRead(htest->adc); ADC_DMA_StartRead(htest->adc);
@ -135,6 +142,7 @@ void TESTER_TestDiode_PosNegPower(TESTER_TestHandleTypeDef *htest)
/* Обработка DMA */ /* Обработка DMA */
ADC_DMA_ReadForPeak(htest->adc, ADC_READ_TIMEOUT_MS); ADC_DMA_ReadForPeak(htest->adc, ADC_READ_TIMEOUT_MS);
TESTER_LED_TestingDiode_End(&htest->leds->LED1);
} }
/** /**

View File

@ -12,6 +12,7 @@
#define _TESTER_FUNC_H_ #define _TESTER_FUNC_H_
#include "tester_adc_func.h" #include "tester_adc_func.h"
#include "tester_interface_func.h"
/** /**
@ -60,13 +61,15 @@ typedef struct
uint32_t continuous_buff_size; uint32_t continuous_buff_size;
float DiodeVolt; float DiodeVolt;
TESTER_LEDsTypeDef *leds;
}TESTER_TestHandleTypeDef; }TESTER_TestHandleTypeDef;
extern TESTER_TestHandleTypeDef hTestDiode; extern TESTER_TestHandleTypeDef hTestDiode;
/* Инициализация хендла тестера диодов */ /* Инициализация хендла тестера диодов */
void TESTER_HandleInit(TESTER_TestHandleTypeDef *htest); void TESTER_HandleInit(TESTER_TestHandleTypeDef *htest, TESTER_LEDsTypeDef *leds);
/* Тест диодов: подключение прямого напряжения */ /* Тест диодов: подключение прямого напряжения */
void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest); void TESTER_TestDiode_PositivePower(TESTER_TestHandleTypeDef *htest);

View File

@ -0,0 +1,95 @@
#include "tester_interface_func.h"
/**
* @brief Инициализация структур интерфейса
*/
void TESTER_InterfaceInit(TESTER_SwitchStartTypeDef *swstart, TESTER_LEDsTypeDef *leds)
{
swstart->Sw_Port = SWITCH_START_Port;
swstart->Sw_Pin = SWITCH_START_Pin;
swstart->Sw_FilterDelay = SWITCH_ANTI_DREBEZG_DELAY;
leds->LED1.LED_Port = LED1_Port;
leds->LED1.LED_Pin = LED1_Pin;
leds->LED1.period = LED_BLINK_AS_ON;
}
/**
* @brief Включить индикацию прямого подключения диода
*/
void TESTER_LED_TestingDiode_Positive(TESTER_LEDTypeDef *led)
{
led->period = LED_POSITIVE_DIODE_PERIOD;
}
/**
* @brief Включить индикацию обратного подключения диода
*/
void TESTER_LED_TestingDiode_Negative(TESTER_LEDTypeDef *led)
{
led->period = LED_NEGATIVE_DIODE_PERIOD;
}
/**
* @brief Выключить индикацию активного теста диодов
*/
void TESTER_LED_TestingDiode_End(TESTER_LEDTypeDef *led)
{
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)
{
HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, LED_ON);
}
/**
* @brief Выключить светодиод
*/
void TESTER_LED_Off(TESTER_LEDTypeDef *led)
{
HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, LED_OFF);
}
/**
* @brief Моргание светодиодом
*/
void TESTER_LED_Blink(TESTER_LEDTypeDef *led)
{
uint32_t tickcurrent = HAL_GetTick();
if((tickcurrent - led->tickprev) > led->period)
{
HAL_GPIO_TogglePin(led->LED_Port, led->LED_Pin);
led->tickprev = tickcurrent;
}
}

View File

@ -0,0 +1,65 @@
/**
**************************************************************************
* @file tester_func.h
* @brief Заголовочный файл для функций МЗКТ.
**************************************************************************
@details
*************************************************************************/
#ifndef _TESTER_INTERFACE_FUNC_H_
#define _TESTER_INTERFACE_FUNC_H_
#include "mylibs_include.h"
typedef struct
{
GPIO_TypeDef *LED_Port;
uint32_t LED_Pin;
uint32_t tickprev;
uint32_t period;
}TESTER_LEDTypeDef;
typedef struct
{
TESTER_LEDTypeDef LED1;
}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_LED_TestingDiode_Positive(TESTER_LEDTypeDef *led);
/* Включить индикацию обратного подключения диода */
void TESTER_LED_TestingDiode_Negative(TESTER_LEDTypeDef *led);
/* Выключить индикацию активного теста диодов */
void TESTER_LED_TestingDiode_End(TESTER_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(TESTER_LEDTypeDef *led);
#endif //_TESTER_INTERFACE_FUNC_H_

View File

@ -1,7 +1,7 @@
#include "tester_main.h" #include "tester_main.h"
TESTER_ProjectTypeDef TESTER; TESTER_ProjectTypeDef TESTER = {0};
/**s /**s
@ -9,12 +9,17 @@ TESTER_ProjectTypeDef TESTER;
*/ */
void TESTER_Init(TESTER_ProjectTypeDef *tester) void TESTER_Init(TESTER_ProjectTypeDef *tester)
{ {
TESTER_InterfaceInit(&tester->SwStart, &tester->leds);
tester->leds.LED1.period = 100;
tester->delay = 250; tester->delay = 250;
tester->delay_en = 0; tester->delay_en = 0;
tester->func.disable_reset_call = 0; tester->func.disable_reset_call = 0;
tester->htest = &hTestDiode; tester->htest = &hTestDiode;
TESTER_HandleInit(tester->htest); TESTER_HandleInit(tester->htest, &tester->leds);
tester->f.flag_init_done = 1;
} }
@ -23,6 +28,7 @@ void TESTER_Init(TESTER_ProjectTypeDef *tester)
*/ */
void TESTER_pre_while(TESTER_ProjectTypeDef *tester) void TESTER_pre_while(TESTER_ProjectTypeDef *tester)
{ {
tester->leds.LED1.period = LED_BLINK_AS_ON;
} }
@ -38,30 +44,52 @@ void TESTER_main_while(TESTER_ProjectTypeDef *tester)
/* ТЕСТ В ОБРАТНОМ ВКЛЮЧЕНИИ */ /* ТЕСТ В ОБРАТНОМ ВКЛЮЧЕНИИ */
if(tester->func.test_diode_neg) if(tester->func.test_diode_neg)
{ {
TESTER_TestDiode_NegativePower(tester->htest);
if(tester->func.disable_reset_call == 0) if(tester->func.disable_reset_call == 0)
tester->func.test_diode_neg = 0; tester->func.test_diode_neg = 0;
TESTER_TestDiode_NegativePower(tester->htest);
} }
/* ТЕСТ В ПРЯМОМ ВКЛЮЧЕНИИ */ /* ТЕСТ В ПРЯМОМ ВКЛЮЧЕНИИ */
if(tester->func.test_diode_pos) if(tester->func.test_diode_pos)
{ {
TESTER_TestDiode_PositivePower(tester->htest);
if(tester->func.disable_reset_call == 0) if(tester->func.disable_reset_call == 0)
tester->func.test_diode_pos = 0; tester->func.test_diode_pos = 0;
TESTER_TestDiode_PositivePower(tester->htest);
} }
/* ТЕСТ ПЕРЕХОДА ИЗ ПРЯМОГО В ОБРАТНОЕ ВКЛЮЧЕНИЯ*/ /* ТЕСТ ПЕРЕХОДА ИЗ ПРЯМОГО В ОБРАТНОЕ ВКЛЮЧЕНИЯ*/
if(tester->func.test_diode_posneg) if(tester->func.test_diode_posneg)
{ {
TESTER_TestDiode_PosNegPower(tester->htest);
if(tester->func.disable_reset_call == 0) if(tester->func.disable_reset_call == 0)
tester->func.test_diode_posneg = 0; tester->func.test_diode_posneg = 0;
}
}
TESTER_TestDiode_PosNegPower(tester->htest);
/**
* @brief Функция работы интерфейса
*/
void TESTER_InterfaceHandle(TESTER_ProjectTypeDef *tester)
{
if(tester->f.flag_init_done == 0)
return;
if(TESTER_ReadSwichStart(&tester->SwStart))
{
tester->func.test_diode_posneg = 1;
} }
TESTER_LED_Blink(&tester->leds.LED1);
} }
/** /**
* @brief Задеркжка главного цикла * @brief Задеркжка главного цикла
*/ */

View File

@ -26,6 +26,14 @@ typedef struct
unsigned disable_reset_call:1; unsigned disable_reset_call:1;
}function_calls; }function_calls;
/**
* @brief Структура для вызова различных функций
*/
typedef struct
{
unsigned flag_init_done:1;
}TESTER_FlagsTypeDef;
/** /**
* @brief Структура проекта тестер * @brief Структура проекта тестер
*/ */
@ -35,6 +43,12 @@ typedef struct
TESTER_TestHandleTypeDef *htest; ///< дескриптор тестера TESTER_TestHandleTypeDef *htest; ///< дескриптор тестера
TESTER_SwitchStartTypeDef SwStart; ///< структура кнопки старта
TESTER_LEDsTypeDef leds; ///< структура светодиодов
TESTER_FlagsTypeDef f;
uint32_t delay; ///< задержка главного цикла uint32_t delay; ///< задержка главного цикла
uint32_t delay_en:1; ///< включить задержку в главном цикле uint32_t delay_en:1; ///< включить задержку в главном цикле
}TESTER_ProjectTypeDef; }TESTER_ProjectTypeDef;
@ -42,12 +56,14 @@ extern TESTER_ProjectTypeDef TESTER;
/* Протестировать диод */ /* Инициализация всех модулей для работы тестера */
void TESTER_Init(TESTER_ProjectTypeDef *tester); void TESTER_Init(TESTER_ProjectTypeDef *tester);
/* Подключить питание с помощью ключей (пинов) в TESTER_PowerSwitchTypeDef */ /* Функция подготовки тестера к while(1) */
void TESTER_pre_while(TESTER_ProjectTypeDef *tester); void TESTER_pre_while(TESTER_ProjectTypeDef *tester);
/* Отключить питание с помощью ключей (пинов) в TESTER_PowerSwitchTypeDef */ /* Главная функция работы тестера */
void TESTER_main_while(TESTER_ProjectTypeDef *tester); void TESTER_main_while(TESTER_ProjectTypeDef *tester);
/* Функция работы интерфейса */
void TESTER_InterfaceHandle(TESTER_ProjectTypeDef *tester);
/*Задеркжка главного цикла */ /*Задеркжка главного цикла */
void TESTER_main_delay(TESTER_ProjectTypeDef *tester); void TESTER_main_delay(TESTER_ProjectTypeDef *tester);
#endif //_TESTER_MAIN_H_ #endif //_TESTER_MAIN_H_

View File

@ -387,6 +387,30 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Tester_main\tester_interface_func.c</PathWithFileName>
<FilenameWithoutPath>tester_interface_func.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>12</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Tester_main\tester_interface_func.h</PathWithFileName>
<FilenameWithoutPath>tester_interface_func.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
@ -397,7 +421,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>11</FileNumber> <FileNumber>13</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -409,7 +433,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>12</FileNumber> <FileNumber>14</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -421,7 +445,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>13</FileNumber> <FileNumber>15</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -433,7 +457,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>14</FileNumber> <FileNumber>16</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -445,7 +469,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>15</FileNumber> <FileNumber>17</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -457,7 +481,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>16</FileNumber> <FileNumber>18</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -469,7 +493,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>17</FileNumber> <FileNumber>19</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -489,7 +513,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>18</FileNumber> <FileNumber>20</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -501,7 +525,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>19</FileNumber> <FileNumber>21</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -513,7 +537,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>20</FileNumber> <FileNumber>22</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -525,7 +549,7 @@
</File> </File>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>21</FileNumber> <FileNumber>23</FileNumber>
<FileType>5</FileType> <FileType>5</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -545,7 +569,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>22</FileNumber> <FileNumber>24</FileNumber>
<FileType>2</FileType> <FileType>2</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -565,7 +589,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>23</FileNumber> <FileNumber>25</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -577,7 +601,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>24</FileNumber> <FileNumber>26</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -589,7 +613,7 @@
</File> </File>
<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>
@ -601,7 +625,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>
@ -613,7 +637,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>
@ -625,7 +649,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>
@ -637,7 +661,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>
@ -649,7 +673,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>
@ -669,7 +693,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</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>
@ -681,7 +705,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</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>
@ -693,7 +717,7 @@
</File> </File>
<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>
@ -705,7 +729,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>
@ -717,7 +741,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>
@ -729,7 +753,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>
@ -741,7 +765,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>
@ -753,7 +777,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>
@ -765,7 +789,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>
@ -777,7 +801,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>
@ -789,7 +813,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>
@ -801,7 +825,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>
@ -813,7 +837,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>
@ -825,7 +849,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>
@ -837,7 +861,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>
@ -849,7 +873,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>
@ -869,7 +893,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</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>

View File

@ -440,6 +440,16 @@
<FileType>5</FileType> <FileType>5</FileType>
<FilePath>..\Core\Tester_main\tester_adc_func.h</FilePath> <FilePath>..\Core\Tester_main\tester_adc_func.h</FilePath>
</File> </File>
<File>
<FileName>tester_interface_func.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Tester_main\tester_interface_func.c</FilePath>
</File>
<File>
<FileName>tester_interface_func.h</FileName>
<FileType>5</FileType>
<FilePath>..\Core\Tester_main\tester_interface_func.h</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>

View File

@ -22,7 +22,7 @@ Dma.ADC1.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlign
Dma.Request0=ADC1 Dma.Request0=ADC1
Dma.RequestsNb=1 Dma.RequestsNb=1
File.Version=6 File.Version=6
GPIO.groupedBy= GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false KeepUserPlacement=false
Mcu.CPN=STM32F103C6T6A Mcu.CPN=STM32F103C6T6A
Mcu.Family=STM32F1 Mcu.Family=STM32F1
@ -38,21 +38,22 @@ Mcu.IPNb=8
Mcu.Name=STM32F103C(4-6)Tx Mcu.Name=STM32F103C(4-6)Tx
Mcu.Package=LQFP48 Mcu.Package=LQFP48
Mcu.Pin0=PC13-TAMPER-RTC Mcu.Pin0=PC13-TAMPER-RTC
Mcu.Pin1=PD0-OSC_IN Mcu.Pin1=PC14-OSC32_IN
Mcu.Pin10=PA13 Mcu.Pin10=PA10
Mcu.Pin11=PA14 Mcu.Pin11=PA13
Mcu.Pin12=VP_SYS_VS_Systick Mcu.Pin12=PA14
Mcu.Pin13=VP_TIM2_VS_ClockSourceINT Mcu.Pin13=VP_SYS_VS_Systick
Mcu.Pin14=VP_TIM3_VS_ClockSourceINT Mcu.Pin14=VP_TIM2_VS_ClockSourceINT
Mcu.Pin2=PD1-OSC_OUT Mcu.Pin15=VP_TIM3_VS_ClockSourceINT
Mcu.Pin3=PA0-WKUP Mcu.Pin2=PD0-OSC_IN
Mcu.Pin4=PB0 Mcu.Pin3=PD1-OSC_OUT
Mcu.Pin5=PB1 Mcu.Pin4=PA0-WKUP
Mcu.Pin6=PB10 Mcu.Pin5=PB0
Mcu.Pin7=PB11 Mcu.Pin6=PB1
Mcu.Pin8=PA9 Mcu.Pin7=PB10
Mcu.Pin9=PA10 Mcu.Pin8=PB11
Mcu.PinsNb=15 Mcu.Pin9=PA9
Mcu.PinsNb=16
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F103C6Tx Mcu.UserName=STM32F103C6Tx
@ -92,6 +93,10 @@ PB11.Locked=true
PB11.Signal=GPIO_Output PB11.Signal=GPIO_Output
PC13-TAMPER-RTC.Locked=true PC13-TAMPER-RTC.Locked=true
PC13-TAMPER-RTC.Signal=GPIO_Output PC13-TAMPER-RTC.Signal=GPIO_Output
PC14-OSC32_IN.GPIOParameters=GPIO_PuPd
PC14-OSC32_IN.GPIO_PuPd=GPIO_PULLDOWN
PC14-OSC32_IN.Locked=true
PC14-OSC32_IN.Signal=GPIO_Input
PD0-OSC_IN.Mode=HSE-External-Oscillator PD0-OSC_IN.Mode=HSE-External-Oscillator
PD0-OSC_IN.Signal=RCC_OSC_IN PD0-OSC_IN.Signal=RCC_OSC_IN
PD1-OSC_OUT.Mode=HSE-External-Oscillator PD1-OSC_OUT.Mode=HSE-External-Oscillator