diff --git a/hw/bsp/ea4357/board_ea4357.c b/hw/bsp/ea4357/board_ea4357.c index d02a58b47..e25a29963 100644 --- a/hw/bsp/ea4357/board_ea4357.c +++ b/hw/bsp/ea4357/board_ea4357.c @@ -33,6 +33,11 @@ #define BOARD_UART_PIN_TX 10 // PF.10 : UART0_TXD #define BOARD_UART_PIN_RX 11 // PF.11 : UART0_RXD +// P9_1 joystick down +#define BUTTON_PORT 4 +#define BUTTON_PIN 13 + + static const struct { uint8_t mux_port; uint8_t mux_pin; @@ -53,25 +58,6 @@ enum { BOARD_BUTTON_COUNT = sizeof(buttons) / sizeof(buttons[0]) }; -/*------------------------------------------------------------------*/ -/* TUSB HAL MILLISECOND - *------------------------------------------------------------------*/ -#if CFG_TUSB_OS == OPT_OS_NONE - -volatile uint32_t system_ticks = 0; - -void SysTick_Handler (void) -{ - system_ticks++; -} - -uint32_t board_millis(void) -{ - return system_ticks; -} - -#endif - /*------------------------------------------------------------------*/ /* BOARD API *------------------------------------------------------------------*/ @@ -82,6 +68,9 @@ const uint32_t OscRateIn = 12000000; static const PINMUX_GRP_T pinmuxing[] = { + // Button + {0x9, 1, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLUP)}, + // USB /* I2S */ @@ -124,12 +113,14 @@ void board_init(void) #if CFG_TUSB_OS == OPT_OS_NONE // 1ms tick timer SysTick_Config(SystemCoreClock / 1000); +#elif CFG_TUSB_OS == OPT_OS_FREERTOS + // If freeRTOS is used, IRQ priority is limit by max syscall ( smaller is higher ) + //NVIC_SetPriority(USB0_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY ); #endif Chip_GPIO_Init(LPC_GPIO_PORT); - //------------- LED -------------// - /* Init I2C */ + // LED via pca9532 I2C Chip_SCU_I2C0PinConfig(I2C0_STANDARD_FAST_MODE); Chip_I2C_Init(I2C0); Chip_I2C_SetClockRate(I2C0, 100000); @@ -137,6 +128,9 @@ void board_init(void) pca9532_init(); + // Button + Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT, BUTTON_PORT, BUTTON_PIN); + #if 0 //------------- BUTTON -------------// for(uint8_t i=0; i