/******************************* (C) LiteMesh **********************************
 * @module  led
 * @file    led.c
 * @version 1.0.0
 * @date    XX.XX.XXXX
 * $brief   Template
 *******************************************************************************
 * @history     Version  Author         Comment
 * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release.
 *******************************************************************************
 */
   
#include "stm32f4xx.h"
#include "gpio.h"
#include "led.h"

#define LEDS_EXPAND_OFF(id, ...) 		\
		LED_Off(id);

#define LED_ALL_OFF() \
	LEDS(LEDS_EXPAND_OFF) \

/**
  * @brief  
  * @retval 
  */
void LED_Init(void)
{
	  LED_ALL_OFF();
}

/**
* @brief  Мигает красным, индикация ошибки
  */
void LED_Blinky_Red(void)
{
  LED_Toggle(LED_INIT_ERR);
}

/**
  * @brief  Мигает желтым, индикация режима IAPviaSD
  */
void LED_Blinky_Yellow(void)
{
  LED_Toggle(LED_INIT_ERR);
  LED_Toggle(LED_INIT_OK);
}

/**
  * @brief  Мигает зеленым, индикация режима IAPviaETH
  */
void LED_Blinky_Green(void)
{
  LED_Toggle(LED_INIT_OK);
}

/**
  * @brief  
  */
void LED_On(gpio_t pin)
{
  gpio_set(pin, 1);
}

/**
  * @brief  
  */
void LED_Off(gpio_t pin)
{
  gpio_set(pin, 0);
}

/**
  * @brief  Изменить состояние LED
  */
void LED_Toggle(gpio_t pin)
{
    gpio_invert_output(pin);
}


 /******************************* (C) LiteMesh *********************************/