1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #include "stm32f0xx_hal.h"
- #include "tim.h"
- #include "led.h"
- TIM_HandleTypeDef Tim16Handle;
- TIM_HandleTypeDef Tim17Handle;
- // TIM17 - индикация нажатия курка
- // TIM16 - инфракрасный диод
- void tim_init(void)
- {
- __HAL_RCC_TIM16_CLK_ENABLE();
- __HAL_RCC_TIM17_CLK_ENABLE();
-
- Tim16Handle.Instance = TIM16;
- Tim16Handle.Init.Period = 10000 - 1;
- Tim16Handle.Init.Prescaler = 4800 - 1;
- Tim16Handle.Init.ClockDivision = 0;
- Tim16Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
- Tim16Handle.Init.RepetitionCounter = 0;
- Tim16Handle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- HAL_TIM_Base_Init(&Tim16Handle);
-
- HAL_NVIC_SetPriority(TIM16_IRQn, 2, 0);
-
- HAL_NVIC_EnableIRQ(TIM16_IRQn);
-
-
- Tim17Handle.Instance = TIM17;
- Tim17Handle.Init.Period = 2000 - 1;
- Tim17Handle.Init.Prescaler = 4800 - 1;
- Tim17Handle.Init.ClockDivision = 0;
- Tim17Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
- Tim17Handle.Init.RepetitionCounter = 0;
- Tim17Handle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- HAL_TIM_Base_Init(&Tim17Handle);
-
- HAL_NVIC_SetPriority(TIM17_IRQn, 2, 0);
-
- HAL_NVIC_EnableIRQ(TIM17_IRQn);
- }
- //
- void tim_signal_start(void)
- {
- __HAL_TIM_CLEAR_IT(&Tim17Handle, TIM_IT_UPDATE);
- HAL_TIM_Base_Start_IT(&Tim17Handle);
- }
- //
- void tim_inf_set_time(uint16_t time)
- {
- __HAL_TIM_CLEAR_IT(&Tim16Handle, TIM_IT_UPDATE);
- TIM16->ARR = time;
- HAL_TIM_Base_Start_IT(&Tim16Handle);
- }
- //
- void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
- {
- if (htim->Instance == TIM16)
- {
- HAL_TIM_Base_Stop_IT(&Tim16Handle);
- led_inf_off();
- }
- else if (htim->Instance == TIM17)
- {
- HAL_TIM_Base_Stop_IT(&Tim17Handle);
- led_signal_off();
- }
- }
- //
- void TIM16_IRQHandler(void)
- {
- HAL_TIM_IRQHandler(&Tim16Handle);
- }
- //
- void TIM17_IRQHandler(void)
- {
- HAL_TIM_IRQHandler(&Tim17Handle);
- }
- #if 0
- void TIM1_BRK_UP_TRG_COM_IRQHandler(void)
- {
- HAL_TIM_IRQHandler(&TimHandle);
- }
- #endif
|