123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include "stm32f0xx_hal.h"
- #include "logic.h"
- #include "pwm_in.h"
- #include "gpio.h"
- #include "pwm_out.h"
- #define LED_ON HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET);
- #define LED_OFF HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET);
- static uint8_t step_number = 0;
- static IWDG_HandleTypeDef IwdgHandle;
- //
- void logic_main(void)
- {
- HAL_IWDG_Refresh(&IwdgHandle);
-
- if (get_button())
- {
- gpio_set_output(true);
- LED_ON;
- HAL_Delay(500);
- HAL_IWDG_Refresh(&IwdgHandle);
- LED_OFF;
- HAL_Delay(500);
- HAL_IWDG_Refresh(&IwdgHandle);
- logic_set_out_pwm();
- HAL_Delay(500);
- HAL_IWDG_Refresh(&IwdgHandle);
- gpio_set_output(false);
- tim_pwm_pulse_idle();
-
- set_button(false);
- }
-
- }
- //
- void logic_set_out_pwm(void)
- {
- switch (step_number)
- {
- case 0:
- tim_pwm_out_set_pulse(PWM_OUT_CH_1, 1300);
- break;
-
- case 1:
- tim_pwm_out_set_pulse(PWM_OUT_CH_2, 1300);
- break;
-
- case 2:
- tim_pwm_out_set_pulse(PWM_OUT_CH_1, 1850);
- break;
-
- case 3:
- tim_pwm_out_set_pulse(PWM_OUT_CH_2, 1850);
- break;
-
- default : break;
- }
-
- step_number = step_number == 3 ? 0 : step_number + 1;
- }
- //
- void wdt_init(void)
- {
- RCC_OscInitTypeDef RCC_OscInitStruct;
-
- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI;
- RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
- RCC_OscInitStruct.LSIState = RCC_LSI_ON;
- HAL_RCC_OscConfig(&RCC_OscInitStruct);
-
- IwdgHandle.Instance = IWDG;
- IwdgHandle.Init.Prescaler = 32;
- IwdgHandle.Init.Reload = 1000;
- IwdgHandle.Init.Window = IWDG_WINDOW_DISABLE;
-
- HAL_IWDG_Init(&IwdgHandle);
- }
|