| /* |
| * Copyright (c) 2015, Freescale Semiconductor, Inc. |
| * Copyright 2016-2017 NXP |
| * All rights reserved. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| #include "board.h" |
| #include "fsl_debug_console.h" |
| #include "fsl_gpio.h" |
| |
| #include "clock_config.h" |
| #include "pin_mux.h" |
| /******************************************************************************* |
| * Definitions |
| ******************************************************************************/ |
| #define EXAMPLE_LED_GPIO GPIO1 |
| #define EXAMPLE_LED_GPIO_PIN 13U |
| #define EXAMPLE_DELAY_COUNT 400000U |
| |
| /******************************************************************************* |
| * Prototypes |
| ******************************************************************************/ |
| /*! |
| * @brief delay a while. |
| */ |
| void delay(void); |
| |
| /******************************************************************************* |
| * Variables |
| ******************************************************************************/ |
| /* The PIN status */ |
| volatile bool g_pinSet = false; |
| /******************************************************************************* |
| * Code |
| ******************************************************************************/ |
| void delay(void) |
| { |
| volatile uint32_t i = 0; |
| for (i = 0; i < EXAMPLE_DELAY_COUNT; ++i) |
| { |
| __asm("NOP"); /* delay */ |
| } |
| } |
| |
| /*! |
| * @brief Main function |
| */ |
| int main(void) |
| { |
| /* Define the init structure for the output LED pin*/ |
| gpio_pin_config_t led_config = {kGPIO_DigitalOutput, 0, kGPIO_NoIntmode}; |
| |
| /* Board pin, clock, debug console init */ |
| /* Board specific RDC settings */ |
| BOARD_RdcInit(); |
| |
| BOARD_InitPins(); |
| BOARD_BootClockRUN(); |
| BOARD_InitDebugConsole(); |
| BOARD_InitMemory(); |
| |
| /* Print a note to terminal. */ |
| PRINTF("\r\n GPIO Driver example\r\n"); |
| PRINTF("\r\n The LED is blinking.\r\n"); |
| |
| /* Init output LED GPIO. */ |
| GPIO_PinInit(EXAMPLE_LED_GPIO, EXAMPLE_LED_GPIO_PIN, &led_config); |
| |
| while (1) |
| { |
| SDK_DelayAtLeastUs(100000, SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY); |
| #if (defined(FSL_FEATURE_IGPIO_HAS_DR_TOGGLE) && (FSL_FEATURE_IGPIO_HAS_DR_TOGGLE == 1)) |
| GPIO_PortToggle(EXAMPLE_LED_GPIO, 1u << EXAMPLE_LED_GPIO_PIN); |
| #else |
| if (g_pinSet) |
| { |
| GPIO_PinWrite(EXAMPLE_LED_GPIO, EXAMPLE_LED_GPIO_PIN, 0U); |
| g_pinSet = false; |
| } |
| else |
| { |
| GPIO_PinWrite(EXAMPLE_LED_GPIO, EXAMPLE_LED_GPIO_PIN, 1U); |
| g_pinSet = true; |
| } |
| #endif /* FSL_FEATURE_IGPIO_HAS_DR_TOGGLE */ |
| } |
| } |