#include "led.h" static uint32_t GPIO_PORT[LEDn] = {LED_DEV_GPIO_PORT,LED_485STATE_GPIO_PORT,LED_NETSTATE_GPIO_PORT}; static uint32_t GPIO_PIN[LEDn] = {LED_DEV_PIN,LED_485STATE_PIN,LED_NETSTATE_PIN}; static rcu_periph_enum GPIO_CLK[LEDn] = {LED_DEV_GPIO_CLK,LED_485STATE_GPIO_CLK,LED_NETSTATE_GPIO_CLK}; /*! \brief configure led GPIO \param[in] lednum: specify the led to be configured \arg LED1 \param[out] none \retval none */ void gd_eval_led_init(led_typedef_enum lednum) { /* enable the led clock */ rcu_periph_clock_enable(GPIO_CLK[lednum]); /* configure led GPIO port */ gpio_init(GPIO_PORT[lednum], GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN[lednum]); GPIO_BC(GPIO_PORT[lednum]) = GPIO_PIN[lednum]; gpio_bit_set(GPIOB,GPIO_PIN_11); } /*! \brief turn on selected led \param[in] lednum: specify the led to be turned on \arg LED2 \arg LED3 \arg LED4 \arg LED5 \param[out] none \retval none */ void gd_eval_led_on(led_typedef_enum lednum) { GPIO_BOP(GPIO_PORT[lednum]) = GPIO_PIN[lednum]; } /*! \brief turn off selected led \param[in] lednum: specify the led to be turned off \arg LED2 \arg LED3 \arg LED4 \arg LED5 \param[out] none \retval none */ void gd_eval_led_off(led_typedef_enum lednum) { GPIO_BC(GPIO_PORT[lednum]) = GPIO_PIN[lednum]; } /*! \brief toggle selected led \param[in] lednum: specify the led to be toggled \arg LED2 \arg LED3 \arg LED4 \arg LED5 \param[out] none \retval none */ void gd_eval_led_toggle(led_typedef_enum lednum) { gpio_bit_write(GPIO_PORT[lednum], GPIO_PIN[lednum], (bit_status)(1-gpio_input_bit_get(GPIO_PORT[lednum], GPIO_PIN[lednum]))); }