#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "board.h"
#include "peripherals.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "fsl_debug_console.h"
#include "MKL16Z4.h"
#include "fsl_gpio.h"
//TODO: insert other include files here.
//TODO: insert other definitions and declarations here.
#define LED1_PIN 16U // PTE16
#define LED2_PIN 17U // PTE17
#define LED_PORT PORTE // Port E for both LEDs
#define LED_GPIO GPIOE // GPIOE for both LEDs
void delay(void) {
for (volatile uint32_t i = 0; i < 1000000; ++i) {
__asm("NOP");
// No operation, just delays
}
}
// Function to initialize LED pins
void LED_Init(void) {
// Configuration structure for LED pins
gpio_pin_config_t led_config = { kGPIO_DigitalOutput, // Set as output
1 // Initial logic level (off)
};
// Initialize the pins for LED1 and LED2 as outputs
GPIO_PinInit(LED_GPIO, LED1_PIN, &led_config);
GPIO_PinInit(LED_GPIO, LED2_PIN, &led_config);
}
int main(void) {
// Init board hardware.
BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
/*#ifndef BOARD_INIT_DEBUG_CONSOLE_PERIPHERAL
//Init FSL debug console.
BOARD_InitDebugConsole();
#endif
PRINTF("Hello World\r\n");*/
LED_Init();
GPIO_SetPinsOutput(LED_GPIO, 1U << LED1_PIN);
GPIO_SetPinsOutput(LED_GPIO, 1U << LED2_PIN);
while (1) {
// Toggle LED1 and LED2
GPIO_TogglePinsOutput(LED_GPIO, 1U << LED1_PIN);
GPIO_TogglePinsOutput(LED_GPIO, 1U << LED2_PIN);
// Delay between toggles
delay();
}
return 0;
}