diff --git a/stm/led.c b/stm/led.c index 3c1a93e70f..e1d19b749c 100644 --- a/stm/led.c +++ b/stm/led.c @@ -4,6 +4,7 @@ #include "misc.h" #include "mpconfig.h" +#include "mpconfigport.h" #include "qstr.h" #include "obj.h" #include "led.h" @@ -14,61 +15,6 @@ #define PYB_LED_3 (3) #define PYB_LED_4 (4) -#if defined(PYBOARD) - #define PYB_LED1_PORT (GPIOA) - #define PYB_LED1_PIN (GPIO_Pin_8) - - #define PYB_LED2_PORT (GPIOA) - #define PYB_LED2_PIN (GPIO_Pin_10) - - #define PYB_LED3_PORT (GPIOC) - #define PYB_LED3_PIN (GPIO_Pin_4) - - #define PYB_LED4_PORT (GPIOC) - #define PYB_LED4_PIN (GPIO_Pin_5) - - #define PYB_OTYPE (GPIO_OType_OD) - - #define PYB_LED_ON(port, pin) (port->BSRRH = pin) - #define PYB_LED_OFF(port, pin) (port->BSRRL = pin) - -#elif defined(PYBOARD4) - #define PYB_LED1_PORT (GPIOA) - #define PYB_LED1_PIN (GPIO_Pin_13) - - #define PYB_LED2_PORT (GPIOA) - #define PYB_LED2_PIN (GPIO_Pin_14) - - #define PYB_LED3_PORT (GPIOA) - #define PYB_LED3_PIN (GPIO_Pin_15) - - #define PYB_LED4_PORT (GPIOB) - #define PYB_LED4_PIN (GPIO_Pin_4) - - #define PYB_OTYPE (GPIO_OType_PP) - - #define PYB_LED_ON(port, pin) (port->BSRRL = pin) - #define PYB_LED_OFF(port, pin) (port->BSRRH = pin) - -#elif defined(STM32F4DISC) - #define PYB_LED1_PORT (GPIOD) - #define PYB_LED1_PIN (GPIO_Pin_14) - - #define PYB_LED2_PORT (GPIOD) - #define PYB_LED2_PIN (GPIO_Pin_12) - - #define PYB_LED3_PORT (GPIOD) - #define PYB_LED3_PIN (GPIO_Pin_15) - - #define PYB_LED4_PORT (GPIOD) - #define PYB_LED4_PIN (GPIO_Pin_13) - - #define PYB_OTYPE (GPIO_OType_PP) - - #define PYB_LED_ON(port, pin) (port->BSRRL = pin) - #define PYB_LED_OFF(port, pin) (port->BSRRH = pin) -#endif - void led_init(void) { /* GPIO structure */ GPIO_InitTypeDef GPIO_InitStructure; diff --git a/stm/mpconfigport.h b/stm/mpconfigport.h index 6a1856e521..2851c1ad12 100644 --- a/stm/mpconfigport.h +++ b/stm/mpconfigport.h @@ -48,6 +48,25 @@ machine_float_t machine_sqrt(machine_float_t x); #define USRSW_EXTI_LINE (EXTI_Line13) #define USRSW_EXTI_IRQN (EXTI15_10_IRQn) #define USRSW_EXTI_EDGE (EXTI_Trigger_Rising) + + /* LED */ + #define PYB_LED1_PORT (GPIOA) + #define PYB_LED1_PIN (GPIO_Pin_8) + + #define PYB_LED2_PORT (GPIOA) + #define PYB_LED2_PIN (GPIO_Pin_10) + + #define PYB_LED3_PORT (GPIOC) + #define PYB_LED3_PIN (GPIO_Pin_4) + + #define PYB_LED4_PORT (GPIOC) + #define PYB_LED4_PIN (GPIO_Pin_5) + + #define PYB_OTYPE (GPIO_OType_OD) + + #define PYB_LED_ON(port, pin) (port->BSRRH = pin) + #define PYB_LED_OFF(port, pin) (port->BSRRL = pin) + #elif defined (PYBOARD4) #define MICROPY_HW_HAS_SWITCH (1) #define MICROPY_HW_HAS_SDCARD (1) @@ -69,6 +88,25 @@ machine_float_t machine_sqrt(machine_float_t x); #define USRSW_EXTI_LINE (EXTI_Line3) #define USRSW_EXTI_IRQN (EXTI15_10_IRQn) #define USRSW_EXTI_EDGE (EXTI_Trigger_Rising) + + /* LED */ + #define PYB_LED1_PORT (GPIOA) + #define PYB_LED1_PIN (GPIO_Pin_13) + + #define PYB_LED2_PORT (GPIOA) + #define PYB_LED2_PIN (GPIO_Pin_14) + + #define PYB_LED3_PORT (GPIOA) + #define PYB_LED3_PIN (GPIO_Pin_15) + + #define PYB_LED4_PORT (GPIOB) + #define PYB_LED4_PIN (GPIO_Pin_4) + + #define PYB_OTYPE (GPIO_OType_PP) + + #define PYB_LED_ON(port, pin) (port->BSRRL = pin) + #define PYB_LED_OFF(port, pin) (port->BSRRH = pin) + #elif defined (STM32F4DISC) #define MICROPY_HW_HAS_SWITCH (1) #define MICROPY_HW_HAS_SDCARD (0) @@ -90,6 +128,25 @@ machine_float_t machine_sqrt(machine_float_t x); #define USRSW_EXTI_LINE (EXTI_Line0) #define USRSW_EXTI_IRQN (EXTI0_IRQn) #define USRSW_EXTI_EDGE (EXTI_Trigger_Falling) + + /* LED */ + #define PYB_LED1_PORT (GPIOD) + #define PYB_LED1_PIN (GPIO_Pin_14) + + #define PYB_LED2_PORT (GPIOD) + #define PYB_LED2_PIN (GPIO_Pin_12) + + #define PYB_LED3_PORT (GPIOD) + #define PYB_LED3_PIN (GPIO_Pin_15) + + #define PYB_LED4_PORT (GPIOD) + #define PYB_LED4_PIN (GPIO_Pin_13) + + #define PYB_OTYPE (GPIO_OType_PP) + + #define PYB_LED_ON(port, pin) (port->BSRRL = pin) + #define PYB_LED_OFF(port, pin) (port->BSRRH = pin) + #endif #define STM32F40_41xxx