//
// Interrupts: all global ISRs
//

#include "stm32f0xx_hal.h"
#include "stm32f0xx.h"
#include "interrupts.h"
#include "uart.h"
#include "rtc.h"
#include "adc.h"
#include "gpio.h"

extern TIM_HandleTypeDef htim1;
extern volatile uint8_t proceed;

void SysTick_Handler(void)
{
    HAL_IncTick();
    HAL_SYSTICK_IRQHandler();
}

void DMA1_Channel2_3_IRQHandler(void)
{
    HAL_DMA_IRQHandler(uart_get_txdma_handle());
    HAL_DMA_IRQHandler(uart_get_txdma_handle());
}

void USART1_IRQHandler(void)
{
    HAL_UART_IRQHandler(uart_gethandle());
}

void TIM1_BRK_UP_TRG_COM_IRQHandler(void)
{
    proceed = 1;
    HAL_TIM_IRQHandler(&htim1);
}

void RTC_IRQHandler(void)
{

  HAL_RTC_AlarmIRQHandler(rtc_gethandle());
}


void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
{
	  rtc_incseconds();

	// Do something awesome or not
}

void DMA1_Channel1_IRQHandler(void)
{
    HAL_DMA_IRQHandler(adc_gethandle()->DMA_Handle);
}

