board clean up, add button for ea4088

This commit is contained in:
hathach
2019-05-15 17:14:15 +07:00
parent b73047e350
commit 6e6f470b58
10 changed files with 103 additions and 130 deletions

View File

@@ -30,9 +30,8 @@
#define LED_PORT 2 #define LED_PORT 2
#define LED_PIN 19 #define LED_PIN 19
//--------------------------------------------------------------------+ #define BUTTON_PORT 2
// MACRO TYPEDEF CONSTANT ENUM DECLARATION #define BUTTON_PIN 10
//--------------------------------------------------------------------+
/* System oscillator rate and RTC oscillator rate */ /* System oscillator rate and RTC oscillator rate */
const uint32_t OscRateIn = 12000000; const uint32_t OscRateIn = 12000000;
@@ -41,8 +40,11 @@ const uint32_t RTCOscRateIn = 32768;
/* Pin muxing configuration */ /* Pin muxing configuration */
static const PINMUX_GRP_T pinmuxing[] = static const PINMUX_GRP_T pinmuxing[] =
{ {
/* LEDs */ // LED
{2, 19, (IOCON_FUNC0 | IOCON_MODE_INACT)}, {2, 19, (IOCON_FUNC0 | IOCON_MODE_INACT)},
// Button
{2, 10, (IOCON_FUNC0 | IOCON_MODE_INACT | IOCON_MODE_PULLUP)},
}; };
static const PINMUX_GRP_T pin_usb_mux[] = static const PINMUX_GRP_T pin_usb_mux[] =
@@ -67,7 +69,7 @@ static const PINMUX_GRP_T pin_usb_mux[] =
// Invoked by startup code // Invoked by startup code
void SystemInit(void) void SystemInit(void)
{ {
/* Enable IOCON clock */ Chip_IOCON_Init(LPC_IOCON);
Chip_IOCON_SetPinMuxing(LPC_IOCON, pinmuxing, sizeof(pinmuxing) / sizeof(PINMUX_GRP_T)); Chip_IOCON_SetPinMuxing(LPC_IOCON, pinmuxing, sizeof(pinmuxing) / sizeof(PINMUX_GRP_T));
Chip_SetupXtalClocking(); Chip_SetupXtalClocking();
} }
@@ -86,16 +88,17 @@ void board_init(void)
Chip_GPIO_Init(LPC_GPIO); Chip_GPIO_Init(LPC_GPIO);
//------------- LED -------------// // LED
Chip_GPIO_SetPinDIROutput(LPC_GPIO, LED_PORT, LED_PIN); Chip_GPIO_SetPinDIROutput(LPC_GPIO, LED_PORT, LED_PIN);
//------------- BUTTON -------------// // Button
// for(uint8_t i=0; i<BOARD_BUTTON_COUNT; i++) GPIO_SetDir(buttons[i].port, TU_BIT(buttons[i].pin), 0); Chip_GPIO_SetPinDIRInput(LPC_GPIO, BUTTON_PORT, BUTTON_PIN);
// UART
//------------- UART -------------//
//------------- USB -------------// //------------- USB -------------//
Chip_IOCON_SetPinMuxing(LPC_IOCON, pin_usb_mux, sizeof(pin_usb_mux) / sizeof(PINMUX_GRP_T));
// Port1 as Host, Port2: Device // Port1 as Host, Port2: Device
Chip_USB_Init(); Chip_USB_Init();
@@ -108,35 +111,23 @@ void board_init(void)
// USB1 = host, USB2 = device // USB1 = host, USB2 = device
LPC_USB->StCtrl = 0x3; LPC_USB->StCtrl = 0x3;
Chip_IOCON_SetPinMuxing(LPC_IOCON, pin_usb_mux, sizeof(pin_usb_mux) / sizeof(PINMUX_GRP_T));
} }
//--------------------------------------------------------------------+
// Board porting API
//--------------------------------------------------------------------+
//------------- LED -------------//
void board_led_write(bool state) void board_led_write(bool state)
{ {
Chip_GPIO_SetPinState(LPC_GPIO, LED_PORT, LED_PIN, state); Chip_GPIO_SetPinState(LPC_GPIO, LED_PORT, LED_PIN, 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, 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);
@@ -153,14 +144,8 @@ int board_uart_write(void const * buf, int len)
return 0; return 0;
} }
/*------------------------------------------------------------------*/
/* TUSB HAL MILLISECOND
*------------------------------------------------------------------*/
#if CFG_TUSB_OS == OPT_OS_NONE #if CFG_TUSB_OS == OPT_OS_NONE
volatile uint32_t system_ticks = 0; volatile uint32_t system_ticks = 0;
void SysTick_Handler (void) void SysTick_Handler (void)
{ {
system_ticks++; system_ticks++;
@@ -170,5 +155,4 @@ uint32_t board_millis(void)
{ {
return system_ticks; return system_ticks;
} }
#endif #endif

View File

@@ -46,28 +46,6 @@
#define BUTTON_PIN _PINNUM(1, 02) #define BUTTON_PIN _PINNUM(1, 02)
/*------------------------------------------------------------------*/
/* 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
*------------------------------------------------------------------*/
// tinyusb function that handles power event (detected, ready, removed) // tinyusb function that handles power event (detected, ready, removed)
// We must call it within SD's SOC event handler, or set it as power event handler if SD is not enabled. // We must call it within SD's SOC event handler, or set it as power event handler if SD is not enabled.
extern void tusb_hal_nrf_power_event(uint32_t event); extern void tusb_hal_nrf_power_event(uint32_t event);
@@ -128,6 +106,10 @@ void board_init(void)
if ( usb_reg & POWER_USBREGSTATUS_OUTPUTRDY_Msk ) tusb_hal_nrf_power_event(NRFX_POWER_USB_EVT_READY); if ( usb_reg & POWER_USBREGSTATUS_OUTPUTRDY_Msk ) tusb_hal_nrf_power_event(NRFX_POWER_USB_EVT_READY);
} }
//--------------------------------------------------------------------+
// Board porting API
//--------------------------------------------------------------------+
void board_led_write(bool state) void board_led_write(bool state)
{ {
nrf_gpio_pin_write(LED_PIN, state ? LED_STATE_ON : (1-LED_STATE_ON)); nrf_gpio_pin_write(LED_PIN, state ? LED_STATE_ON : (1-LED_STATE_ON));
@@ -153,6 +135,19 @@ int board_uart_write(void const * buf, int 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
#ifdef SOFTDEVICE_PRESENT #ifdef SOFTDEVICE_PRESENT
// process SOC event from SD // process SOC event from SD
uint32_t proc_soc(void) uint32_t proc_soc(void)

View File

@@ -85,19 +85,6 @@ void board_init(void)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Board porting API // Board porting API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
#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
void board_led_write(bool state) void board_led_write(bool state)
{ {
@@ -123,3 +110,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

View File

@@ -145,19 +145,6 @@ void board_init(void)
// Board porting API // Board porting API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
#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
void board_led_write(bool state) void board_led_write(bool state)
{ {
Chip_GPIO_SetPinState(LPC_GPIO, LED_PORT, LED_PIN, state); Chip_GPIO_SetPinState(LPC_GPIO, LED_PORT, LED_PIN, state);
@@ -184,3 +171,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

View File

@@ -177,19 +177,6 @@ void board_init(void)
// Board porting API // Board porting API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
#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
void board_led_write(bool state) void board_led_write(bool state)
{ {
Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED_PORT, LED_PIN, state); Chip_GPIO_SetPinState(LPC_GPIO_PORT, LED_PORT, LED_PIN, state);
@@ -201,7 +188,6 @@ uint32_t board_button_read(void)
return Chip_GPIO_GetPinState(LPC_GPIO_PORT, BUTTON_PORT, BUTTON_PIN) ? 0 : 1; return Chip_GPIO_GetPinState(LPC_GPIO_PORT, BUTTON_PORT, BUTTON_PIN) ? 0 : 1;
} }
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);
@@ -218,4 +204,15 @@ int board_uart_write(void const * buf, int 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

View File

@@ -101,6 +101,10 @@ void board_init(void)
_gclk_enable_channel(TCC0_GCLK_ID, GCLK_CLKCTRL_GEN_GCLK0_Val); _gclk_enable_channel(TCC0_GCLK_ID, GCLK_CLKCTRL_GEN_GCLK0_Val);
} }
//--------------------------------------------------------------------+
// Board porting API
//--------------------------------------------------------------------+
void board_led_write(bool state) void board_led_write(bool state)
{ {
gpio_set_pin_level(LED_PIN, state); gpio_set_pin_level(LED_PIN, state);
@@ -114,7 +118,6 @@ uint32_t board_button_read(void)
#if CFG_TUSB_OS == OPT_OS_NONE #if CFG_TUSB_OS == OPT_OS_NONE
volatile uint32_t system_ticks = 0; volatile uint32_t system_ticks = 0;
void SysTick_Handler (void) void SysTick_Handler (void)
{ {
system_ticks++; system_ticks++;
@@ -124,5 +127,4 @@ uint32_t board_millis(void)
{ {
return system_ticks; return system_ticks;
} }
#endif #endif

View File

@@ -90,6 +90,10 @@ void board_init(void)
gpio_set_pin_function(PIN_PA25, PINMUX_PA25H_USB_DP); gpio_set_pin_function(PIN_PA25, PINMUX_PA25H_USB_DP);
} }
//--------------------------------------------------------------------+
// Board porting API
//--------------------------------------------------------------------+
void board_led_write(bool state) void board_led_write(bool state)
{ {
gpio_set_pin_level(LED_PIN, state); gpio_set_pin_level(LED_PIN, state);
@@ -101,9 +105,6 @@ uint32_t board_button_read(void)
return gpio_get_pin_level(BUTTON_PIN) ? 0 : 1; return gpio_get_pin_level(BUTTON_PIN) ? 0 : 1;
} }
/*------------------------------------------------------------------*/
/* TUSB HAL MILLISECOND
*------------------------------------------------------------------*/
#if CFG_TUSB_OS == OPT_OS_NONE #if CFG_TUSB_OS == OPT_OS_NONE
volatile uint32_t system_ticks = 0; volatile uint32_t system_ticks = 0;

View File

@@ -44,28 +44,6 @@
#define BUTTON_PIN 11 #define BUTTON_PIN 11
/*------------------------------------------------------------------*/
/* 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
*------------------------------------------------------------------*/
// tinyusb function that handles power event (detected, ready, removed) // tinyusb function that handles power event (detected, ready, removed)
// We must call it within SD's SOC event handler, or set it as power event handler if SD is not enabled. // We must call it within SD's SOC event handler, or set it as power event handler if SD is not enabled.
extern void tusb_hal_nrf_power_event(uint32_t event); extern void tusb_hal_nrf_power_event(uint32_t event);
@@ -126,6 +104,10 @@ void board_init(void)
if ( usb_reg & POWER_USBREGSTATUS_OUTPUTRDY_Msk ) tusb_hal_nrf_power_event(NRFX_POWER_USB_EVT_READY); if ( usb_reg & POWER_USBREGSTATUS_OUTPUTRDY_Msk ) tusb_hal_nrf_power_event(NRFX_POWER_USB_EVT_READY);
} }
//--------------------------------------------------------------------+
// Board porting API
//--------------------------------------------------------------------+
void board_led_write(bool state) void board_led_write(bool state)
{ {
nrf_gpio_pin_write(LED_PIN, state ? LED_STATE_ON : (1-LED_STATE_ON)); nrf_gpio_pin_write(LED_PIN, state ? LED_STATE_ON : (1-LED_STATE_ON));
@@ -151,6 +133,19 @@ int board_uart_write(void const * buf, int 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
#ifdef SOFTDEVICE_PRESENT #ifdef SOFTDEVICE_PRESENT
// process SOC event from SD // process SOC event from SD
uint32_t proc_soc(void) uint32_t proc_soc(void)

View File

@@ -91,6 +91,9 @@ void board_init(void)
#endif #endif
} }
//--------------------------------------------------------------------+
// Board porting API
//--------------------------------------------------------------------+
void board_led_write(bool state) void board_led_write(bool state)
{ {
@@ -103,9 +106,6 @@ uint32_t board_button_read(void)
return 0; return 0;
} }
/*------------------------------------------------------------------*/
/* TUSB HAL MILLISECOND
*------------------------------------------------------------------*/
#if CFG_TUSB_OS == OPT_OS_NONE #if CFG_TUSB_OS == OPT_OS_NONE
volatile uint32_t system_ticks = 0; volatile uint32_t system_ticks = 0;

View File

@@ -81,6 +81,9 @@ void board_init(void)
GPIOA->PUPDR |= GPIO_PUPDR_PUPD10_0; GPIOA->PUPDR |= GPIO_PUPDR_PUPD10_0;
} }
//--------------------------------------------------------------------+
// Board porting API
//--------------------------------------------------------------------+
void board_led_write(bool state) void board_led_write(bool state)
{ {
@@ -98,12 +101,8 @@ uint32_t board_button_read(void)
} }
/*------------------------------------------------------------------*/
/* TUSB HAL MILLISECOND
*------------------------------------------------------------------*/
#if CFG_TUSB_OS == OPT_OS_NONE #if CFG_TUSB_OS == OPT_OS_NONE
volatile uint32_t system_ticks = 0; volatile uint32_t system_ticks = 0;
void SysTick_Handler (void) void SysTick_Handler (void)
{ {
system_ticks++; system_ticks++;