add button for ea4357

This commit is contained in:
hathach
2019-05-15 17:52:29 +07:00
parent 15076006ca
commit 7bd16aaf9b

View File

@@ -33,6 +33,11 @@
#define BOARD_UART_PIN_TX 10 // PF.10 : UART0_TXD #define BOARD_UART_PIN_TX 10 // PF.10 : UART0_TXD
#define BOARD_UART_PIN_RX 11 // PF.11 : UART0_RXD #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 { static const struct {
uint8_t mux_port; uint8_t mux_port;
uint8_t mux_pin; uint8_t mux_pin;
@@ -53,25 +58,6 @@ enum {
BOARD_BUTTON_COUNT = sizeof(buttons) / sizeof(buttons[0]) 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 /* BOARD API
*------------------------------------------------------------------*/ *------------------------------------------------------------------*/
@@ -82,6 +68,9 @@ const uint32_t OscRateIn = 12000000;
static const PINMUX_GRP_T pinmuxing[] = static const PINMUX_GRP_T pinmuxing[] =
{ {
// Button
{0x9, 1, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC0 | SCU_MODE_PULLUP)},
// USB // USB
/* I2S */ /* I2S */
@@ -124,12 +113,14 @@ void board_init(void)
#if CFG_TUSB_OS == OPT_OS_NONE #if CFG_TUSB_OS == OPT_OS_NONE
// 1ms tick timer // 1ms tick timer
SysTick_Config(SystemCoreClock / 1000); 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 #endif
Chip_GPIO_Init(LPC_GPIO_PORT); Chip_GPIO_Init(LPC_GPIO_PORT);
//------------- LED -------------// // LED via pca9532 I2C
/* Init I2C */
Chip_SCU_I2C0PinConfig(I2C0_STANDARD_FAST_MODE); Chip_SCU_I2C0PinConfig(I2C0_STANDARD_FAST_MODE);
Chip_I2C_Init(I2C0); Chip_I2C_Init(I2C0);
Chip_I2C_SetClockRate(I2C0, 100000); Chip_I2C_SetClockRate(I2C0, 100000);
@@ -137,6 +128,9 @@ void board_init(void)
pca9532_init(); pca9532_init();
// Button
Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT, BUTTON_PORT, BUTTON_PIN);
#if 0 #if 0
//------------- BUTTON -------------// //------------- BUTTON -------------//
for(uint8_t i=0; i<BOARD_BUTTON_COUNT; i++) for(uint8_t i=0; i<BOARD_BUTTON_COUNT; i++)
@@ -247,7 +241,10 @@ void board_init(void)
// TODO Remove R170, R171, solder a pair of 15K to USB1 D+/D- to test with USB1 Host // TODO Remove R170, R171, solder a pair of 15K to USB1 D+/D- to test with USB1 Host
} }
// LED //--------------------------------------------------------------------+
// Board porting API
//--------------------------------------------------------------------+
void board_led_write(bool state) void board_led_write(bool state)
{ {
if (state) if (state)
@@ -259,28 +256,12 @@ void board_led_write(bool state)
} }
} }
//--------------------------------------------------------------------+
// BUTTONS
//--------------------------------------------------------------------+
#if 0
static bool button_read(uint8_t id)
{
// return !tu_bit_test( GPIO_ReadValue(buttons[id].gpio_port), buttons[id].gpio_pin ); // button is active low
}
#endif
uint32_t board_button_read(void) uint32_t board_button_read(void)
{ {
uint32_t result = 0; // active low
return Chip_GPIO_GetPinState(LPC_GPIO_PORT, BUTTON_PORT, BUTTON_PIN) ? 0 : 1;
// for(uint8_t i=0; i<BOARD_BUTTON_COUNT; i++) result |= (button_read(i) ? TU_BIT(i) : 0);
return result;
} }
//--------------------------------------------------------------------+
// UART
//--------------------------------------------------------------------+
int board_uart_read(uint8_t* buf, int len) int board_uart_read(uint8_t* buf, int len)
{ {
//return UART_ReceiveByte(BOARD_UART_PORT); //return UART_ReceiveByte(BOARD_UART_PORT);
@@ -296,3 +277,16 @@ int board_uart_write(void const * buf, int len)
(void) len; (void) len;
return 0; return 0;
} }
#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