]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M0+_LPC51U68_LPCXpresso/board/boards/board.h
a28ca84d1afb040370522e2a8366e0c32ca74b27
[freertos] / FreeRTOS / Demo / CORTEX_M0+_LPC51U68_LPCXpresso / board / boards / board.h
1 /*\r
2  * Copyright (c) 2016, Freescale Semiconductor, Inc.\r
3  * Copyright 2016-2017 NXP\r
4  * All rights reserved.\r
5  *\r
6  * SPDX-License-Identifier: BSD-3-Clause\r
7  */\r
8 \r
9 #ifndef _BOARD_H_\r
10 #define _BOARD_H_\r
11 \r
12 #include "clock_config.h"\r
13 #include "fsl_common.h"\r
14 #include "fsl_gpio.h"\r
15 \r
16 /*******************************************************************************\r
17  * Definitions\r
18  ******************************************************************************/\r
19 /*! @brief The board name */\r
20 #define BOARD_NAME "LPCXPRESSO51U68"\r
21 \r
22 #define BOARD_EXTCLKINRATE (0)\r
23 \r
24 /*! @brief The UART to use for debug messages. */\r
25 #define BOARD_DEBUG_UART_TYPE kSerialPort_Uart\r
26 #define BOARD_DEBUG_UART_BASEADDR (uint32_t) USART0\r
27 #define BOARD_DEBUG_UART_INSTANCE 0U\r
28 #define BOARD_DEBUG_UART_CLK_FREQ CLOCK_GetFreq(kCLOCK_Flexcomm0)\r
29 #define BOARD_DEBUG_UART_CLK_ATTACH kFRO12M_to_FLEXCOMM0\r
30 #define BOARD_DEBUG_UART_RST kFC0_RST_SHIFT_RSTn\r
31 #define BOARD_UART_IRQ FLEXCOMM0_IRQn\r
32 #define BOARD_UART_IRQ_HANDLER FLEXCOMM0_IRQHandler\r
33 \r
34 #define BOARD_DEBUG_SPI_CLK_FREQ 12000000\r
35 \r
36 #ifndef BOARD_DEBUG_UART_BAUDRATE\r
37 #define BOARD_DEBUG_UART_BAUDRATE 115200\r
38 #endif /* BOARD_DEBUG_UART_BAUDRATE */\r
39 \r
40 #ifndef BOARD_LED_RED_GPIO\r
41 #define BOARD_LED_RED_GPIO GPIO\r
42 #endif\r
43 #define BOARD_LED_RED_GPIO_PORT 0U\r
44 #ifndef BOARD_LED_RED_GPIO_PIN\r
45 #define BOARD_LED_RED_GPIO_PIN 29U\r
46 #endif\r
47 #ifndef BOARD_LED_GREEN_GPIO\r
48 #define BOARD_LED_GREEN_GPIO GPIO\r
49 #endif\r
50 #define BOARD_LED_GREEN_GPIO_PORT 1U\r
51 #ifndef BOARD_LED_GREEN_GPIO_PIN\r
52 #define BOARD_LED_GREEN_GPIO_PIN 10U\r
53 #endif\r
54 #ifndef BOARD_LED_BLUE_GPIO\r
55 #define BOARD_LED_BLUE_GPIO GPIO\r
56 #endif\r
57 #define BOARD_LED_BLUE_GPIO_PORT 1U\r
58 #ifndef BOARD_LED_BLUE_GPIO_PIN\r
59 #define BOARD_LED_BLUE_GPIO_PIN 9U\r
60 #endif\r
61 \r
62 #ifndef BOARD_SW1_GPIO\r
63 #define BOARD_SW1_GPIO GPIO\r
64 #endif\r
65 #define BOARD_SW1_GPIO_PORT 0U\r
66 #ifndef BOARD_SW1_GPIO_PIN\r
67 #define BOARD_SW1_GPIO_PIN 24U\r
68 #endif\r
69 #define BOARD_SW1_NAME "SW1"\r
70 #define BOARD_SW3_IRQ PIN_INT0_IRQn\r
71 #define BOARD_SW3_IRQ_HANDLER PIN_INT0_IRQHandler\r
72 \r
73 #ifndef BOARD_SW2_GPIO\r
74 #define BOARD_SW2_GPIO GPIO\r
75 #endif\r
76 #define BOARD_SW2_GPIO_PORT 0U\r
77 #ifndef BOARD_SW2_GPIO_PIN\r
78 #define BOARD_SW2_GPIO_PIN 31U\r
79 #endif\r
80 #define BOARD_SW2_NAME "SW2"\r
81 #define BOARD_SW3_IRQ PIN_INT0_IRQn\r
82 #define BOARD_SW3_IRQ_HANDLER PIN_INT0_IRQHandler\r
83 \r
84 #ifndef BOARD_SW3_GPIO\r
85 #define BOARD_SW3_GPIO GPIO\r
86 #endif\r
87 #define BOARD_SW3_GPIO_PORT 0U\r
88 #ifndef BOARD_SW3_GPIO_PIN\r
89 #define BOARD_SW3_GPIO_PIN 4U\r
90 #endif\r
91 #define BOARD_SW3_NAME "SW3"\r
92 #define BOARD_SW3_IRQ PIN_INT0_IRQn\r
93 #define BOARD_SW3_IRQ_HANDLER PIN_INT0_IRQHandler\r
94 #define BOARD_SW3_GPIO_PININT_INDEX 0\r
95 \r
96 #define BOARD_ARDUINO_INT_IRQ (GINT0_IRQn)\r
97 #define BOARD_ARDUINO_I2C_IRQ (FLEXCOMM4_IRQn)\r
98 #define BOARD_ARDUINO_I2C_INDEX (4)\r
99 /* Board led color mapping */\r
100 #define LOGIC_LED_ON 0U\r
101 #define LOGIC_LED_OFF 1U\r
102 \r
103 #define LED_RED_INIT(output)                                                          \\r
104     GPIO_PinInit(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, BOARD_LED_RED_GPIO_PIN, \\r
105                  &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}) /*!< Enable target LED_RED */\r
106 #define LED_RED_ON()                                            \\r
107     GPIO_PortClear(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, \\r
108                    1U << BOARD_LED_RED_GPIO_PIN) /*!< Turn on target LED_RED */\r
109 #define LED_RED_OFF()                                         \\r
110     GPIO_PortSet(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, \\r
111                  1U << BOARD_LED_RED_GPIO_PIN) /*!< Turn off target LED_RED */\r
112 #define LED_RED_TOGGLE()                                         \\r
113     GPIO_PortToggle(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, \\r
114                     1U << BOARD_LED_RED_GPIO_PIN) /*!< Toggle on target LED_RED */\r
115 \r
116 #define LED_GREEN_INIT(output)                                                              \\r
117     GPIO_PinInit(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, BOARD_LED_GREEN_GPIO_PIN, \\r
118                  &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}) /*!< Enable target LED_GREEN */\r
119 #define LED_GREEN_ON()                                              \\r
120     GPIO_PortClear(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, \\r
121                    1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Turn on target LED_GREEN */\r
122 #define LED_GREEN_OFF()                                           \\r
123     GPIO_PortSet(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, \\r
124                  1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Turn off target LED_GREEN */\r
125 #define LED_GREEN_TOGGLE()                                           \\r
126     GPIO_PortToggle(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, \\r
127                     1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Toggle on target LED_GREEN */\r
128 \r
129 #define LED_BLUE_INIT(output)                                                            \\r
130     GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, BOARD_LED_BLUE_GPIO_PIN, \\r
131                  &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}) /*!< Enable target LED_BLUE */\r
132 #define LED_BLUE_ON()                                             \\r
133     GPIO_PortClear(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, \\r
134                    1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Turn on target LED_BLUE */\r
135 #define LED_BLUE_OFF()                                          \\r
136     GPIO_PortSet(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, \\r
137                  1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Turn off target LED_BLUE */\r
138 #define LED_BLUE_TOGGLE()                                          \\r
139     GPIO_PortToggle(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, \\r
140                     1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Toggle on target LED_BLUE */\r
141 \r
142 #if defined(__cplusplus)\r
143 extern "C" {\r
144 #endif /* __cplusplus */\r
145 \r
146 /*******************************************************************************\r
147  * API\r
148  ******************************************************************************/\r
149 \r
150 status_t BOARD_InitDebugConsole(void);\r
151 \r
152 #if defined(__cplusplus)\r
153 }\r
154 #endif /* __cplusplus */\r
155 \r
156 #endif /* _BOARD_H_ */\r