Difference between revisions of "Nxp chip library routines"
From Wiki at Neela Nurseries
m |
m |
||
Line 46: | Line 46: | ||
</pre> | </pre> | ||
+ | And the lower level routine itself in file <code>./lpc_chip_11uxx_lib/inc/gpio_11xx_1.h</code>: | ||
+ | <pre> | ||
+ | 438 /**^M | ||
+ | 439 * @brief Toggle an individual GPIO output pin to the opposite state^M | ||
+ | 440 * @param pGPIO : The base of GPIO peripheral on the chip^M | ||
+ | 441 * @param port : GPIO Port number where @a pin is located^M | ||
+ | 442 * @param pin : pin number (0..n) to toggle^M | ||
+ | 443 * @return None^M | ||
+ | 444 * @note Any bit set as a '0' will not have it's state changed. This only^M | ||
+ | 445 * applies to ports configured as an output.^M | ||
+ | 446 */^M | ||
+ | 447 STATIC INLINE void Chip_GPIO_SetPinToggle(LPC_GPIO_T *pGPIO, uint8_t port, uint8_t pin)^M | ||
+ | 448 {^M | ||
+ | 449 pGPIO->NOT[port] = (1 << pin);^M | ||
+ | 450 }^M | ||
+ | |||
+ | |||
+ | |||
+ | So where is <code>pGPIO</code> defined? | ||
<!-- comment --> | <!-- comment --> |
Revision as of 21:06, 25 October 2018
CMSIS Library Routines and Details,
LPC1xxx Board Routines
notes started 2018-10-25 THU
LPC11U14 board routines . . .
First search, looking for how NXP demo toggles a given GPIO:
user:~/Downloads/nxp/lpcopen$ grep -nr Board_LED_Toggle ./* ./nxp_lpcxpresso_11u14_board_lib/src/board.c:137:void Board_LED_Toggle(uint8_t LEDNumber) ./nxp_lpcxpresso_11u14_board_lib/inc/board_api.h:112:void Board_LED_Toggle(uint8_t LEDNumber); ./nxp_lpcxpresso_11u14_periph_clkout/example/src/clkout.c:77: Board_LED_Toggle(0); ./nxp_lpcxpresso_11u14_periph_pinint/example/src/pinint.c:187: Board_LED_Toggle(0); ./nxp_lpcxpresso_11u14_periph_uart/example/src/uart.c:135: Board_LED_Toggle(0);/* Toggle LED if the TX FIFO is full */ ./nxp_lpcxpresso_11u14_periph_watchdog/example/src/watchdog.c:65: Board_LED_Toggle(0); ./nxp_lpcxpresso_11u14_periph_watchdog/example/src/watchdog.c:72: Board_LED_Toggle(0);
The routine itself in file ~/Downloads/nxp/lpcopen/nxp_lpcxpresso_11u14_board_lib/src/board.c
:
137 void Board_LED_Toggle(uint8_t LEDNumber) 138 {^M 139 if (LEDNumber == 0)^M 140 Chip_GPIO_SetPinToggle(LPC_GPIO, 0, 7); 141 }
Next search:
$ grep -nr Chip_GPIO_SetPinToggle ./* user:~/Downloads/nxp/lpcopen$ grep -nr Chip_GPIO_SetPinToggle ./* ./lpc_chip_11uxx_lib/inc/gpio_11xx_1.h:447:STATIC INLINE void Chip_GPIO_SetPinToggle(LPC_GPIO_T *pGPIO, uint8_t port, uint8_t pin) Binary file ./nxp_lpcxpresso_11u14_board_lib/src/.board.c.swp matches ./nxp_lpcxpresso_11u14_board_lib/src/board.c:140: Chip_GPIO_SetPinToggle(LPC_GPIO, 0, 7);
And the lower level routine itself in file ./lpc_chip_11uxx_lib/inc/gpio_11xx_1.h
:
438 /**^M
439 * @brief Toggle an individual GPIO output pin to the opposite state^M
440 * @param pGPIO : The base of GPIO peripheral on the chip^M
441 * @param port : GPIO Port number where @a pin is located^M
442 * @param pin : pin number (0..n) to toggle^M
443 * @return None^M
444 * @note Any bit set as a '0' will not have it's state changed. This only^M
445 * applies to ports configured as an output.^M
446 */^M
447 STATIC INLINE void Chip_GPIO_SetPinToggle(LPC_GPIO_T *pGPIO, uint8_t port, uint8_t pin)^M
448 {^M
449 pGPIO->NOT[port] = (1 << pin);^M
450 }^M
So where is pGPIO
defined?