#include "stm32f0xx_hal.h"
#include "button.h"
#include "led.h"
#include "tim.h"
#include "misc.h"



//
void button_init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};

    __HAL_RCC_GPIOB_CLK_ENABLE();

    GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;
    GPIO_InitStructure.Pull = GPIO_PULLUP;
    GPIO_InitStructure.Pin = GPIO_PIN_1;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);
    
    HAL_NVIC_SetPriority(EXTI0_1_IRQn, 2, 0);
    HAL_NVIC_EnableIRQ(EXTI0_1_IRQn);
}


//
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    uint16_t tmp = 0;
    
    if (GPIO_Pin == GPIO_PIN_1)
    {
        tmp = get_pulse_len();
        
        led_signal_on();
        led_inf_on();
        
        tim_signal_start();
        tim_inf_set_time(tmp*10);
        
        //led_togle();
          
    }
}


//
void EXTI0_1_IRQHandler(void)
{
    HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
}