LQ_IMXRT1052_VA1_FreeRTOS/src/main.c

50 lines
1.1 KiB
C

/* FreeRTOS */
#include "FreeRTOS.h"
#include "task.h"
/* Board support package */
#include "board.h"
#include "clock_config.h"
#include "peripherals.h"
#include "pin_mux.h"
/* Debug console */
#include "fsl_debug_console.h"
static void vTaskHello(void *pvParameters);
int main(void) {
BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
BOARD_InitDebugConsole();
CLOCK_SetMode(kCLOCK_ModeRun);
xTaskCreate(vTaskHello, "tHELLO", 128, NULL, 32, NULL);
vTaskStartScheduler();
for (;;) {
__WFI();
}
}
static void vTaskHello(void *pvParameters) {
uint8_t i = 0;
PRINTF("Hello world task started.\r\n");
for(;;) {
vTaskDelay(pdMS_TO_TICKS(100));
GPIO_WritePinOutput(BOARD_INITPINS_LED_R_GPIO, BOARD_INITPINS_LED_R_PIN, ((i & 1U) ? 1 : 0));
GPIO_WritePinOutput(BOARD_INITPINS_LED_G_GPIO, BOARD_INITPINS_LED_G_PIN, ((i & 2U) ? 1 : 0));
GPIO_WritePinOutput(BOARD_INITPINS_LED_B_GPIO, BOARD_INITPINS_LED_B_PIN, ((i & 4U) ? 1 : 0));
if(i++ == 7) {
i = 0;
}
}
}