diff --git a/boards/board.h b/boards/board.h index 1ee5f4cd..f4f2503c 100644 --- a/boards/board.h +++ b/boards/board.h @@ -58,6 +58,7 @@ //--------------------------------------------------------------------+ /** \defgroup group_supported_board Supported Boards * @{ */ +#define BOARD_LPCXPRESSO11U14 1114 ///< LPCXpresso 11u14, some APIs requires the base board #define BOARD_RF1GHZNODE 1100 ///< LPC11U37 from microbuilder http://www.microbuilder.eu/Blog/13-03-14/LPC1xxx_1GHZ_Wireless_Board_Preview.aspx #define BOARD_LPCXPRESSO1347 1300 ///< LPCXpresso 1347, some APIs requires the base board #define BOARD_LPCXPRESSO1769 1700 ///< LPCXpresso 1769, some APIs requires the base board @@ -88,20 +89,22 @@ //--------------------------------------------------------------------+ // BOARD INCLUDE //--------------------------------------------------------------------+ -#if BOARD == BOARD_NGX4330 - #include "ngx/board_ngx4330.h" -#elif BOARD == BOARD_LPCXPRESSO1347 - #include "lpcxpresso/board_lpcxpresso1347.h" +#if BOARD == BOARD_LPCXPRESSO11U14 + #include "lpcxpresso/board_lpcxpresso11u14.h" #elif BOARD == BOARD_RF1GHZNODE #include "microbuilder/board_rf1ghznode.h" +#elif BOARD == BOARD_LPCXPRESSO1347 + #include "lpcxpresso/board_lpcxpresso1347.h" +#elif BOARD == BOARD_LPCXPRESSO1769 + #include "lpcxpresso/board_lpcxpresso1769.h" +#elif BOARD == BOARD_NGX4330 + #include "ngx/board_ngx4330.h" #elif BOARD == BOARD_EA4357 #include "embedded_artists/ea4357/board_ea4357.h" #elif BOARD == BOARD_MCB4300 #include "keil/board_mcb4300.h" #elif BOARD == BOARD_HITEX4350 #include "hitex/board_hitex4350.h" -#elif BOARD == BOARD_LPCXPRESSO1769 - #include "lpcxpresso/board_lpcxpresso1769.h" #elif BOARD == BOARD_LPC4357USB #include "microbuilder/board_lpc4357usb.h" #elif BOARD == BOARD_LPCLINK2 diff --git a/boards/lpcxpresso/board_lpcxpresso11u14.c b/boards/lpcxpresso/board_lpcxpresso11u14.c new file mode 100644 index 00000000..eb8c39ed --- /dev/null +++ b/boards/lpcxpresso/board_lpcxpresso11u14.c @@ -0,0 +1,131 @@ +/**************************************************************************/ +/*! + @file board_lpcxpresso11u14.c + @author hathach (tinyusb.org) + + @section LICENSE + + Software License Agreement (BSD License) + + Copyright (c) 2013, hathach (tinyusb.org) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holders nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + This file is part of the tinyusb stack. +*/ +/**************************************************************************/ + +#include "../board.h" + +#if BOARD == BOARD_LPCXPRESSO11U14 + +#define LED_PORT (0) +#define LED_PIN (7) +#define LED_ON (1) + +const static struct { + uint8_t port; + uint8_t pin; +} buttons[] = +{ + {1, 22 }, // Joystick up + {1, 20 }, // Joystick down + {1, 23 }, // Joystick left + {1, 21 }, // Joystick right + {1, 19 }, // Joystick press + {0, 1 }, // SW3 +// {1, 4 }, // SW4 (require to remove J28) +}; + + +enum { + BOARD_BUTTON_COUNT = sizeof(buttons) / sizeof(buttons[0]) +}; + +void board_init(void) +{ + SystemInit(); + +#if TUSB_CFG_OS == TUSB_OS_NONE // TODO may move to main.c + SysTick_Config(SystemCoreClock / TUSB_CFG_TICKS_HZ); // 1 msec tick timer +#endif + + GPIOInit(); + + //------------- LED -------------// + GPIOSetDir(LED_PORT, LED_PIN, 1); + + //------------- BUTTON -------------// + for(uint8_t i=0; iCLR[LED_PORT] = (1 << LED_PIN); //------------- BUTTON -------------// for(uint8_t i=0; i lower priority +#elif TUSB_CFG_OS == TUSB_OS_CMSIS_RTX + #define LOWER_PRIO(x) ((x)-1) // CMSIS-RTOS lower number --> lower priority +#else + #error Priority is not configured for this RTOS +#endif + +enum { + STANDARD_APP_TASK_PRIO = LOWER_PRIO(TUSB_CFG_OS_TASK_PRIO), // Application Task is lower than usb system task + LED_BLINKING_APP_TASK_PRIO = LOWER_PRIO(STANDARD_APP_TASK_PRIO), // Blinking task is lower than normal task + + KEYBOARD_APP_TASK_PRIO = STANDARD_APP_TASK_PRIO, + MOUSE_APP_TASK_PRIO = STANDARD_APP_TASK_PRIO, + CDC_SERIAL_APP_TASK_PRIO = STANDARD_APP_TASK_PRIO, + MSC_APP_TASK_PRIO = STANDARD_APP_TASK_PRIO +}; + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_APP_OS_PRIO_H_ */