FreeRTOS demo task implementations.
Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
Macros | |
Task configuration | |
#define | UART_TASK_PRIORITY (tskIDLE_PRIORITY + 3) |
#define | UART_TASK_DELAY (10 / portTICK_RATE_MS) |
#define | MAIN_TASK_PRIORITY (tskIDLE_PRIORITY + 2) |
#define | MAIN_TASK_DELAY (100 / portTICK_RATE_MS) |
#define | GRAPH_TASK_PRIORITY (tskIDLE_PRIORITY + 1) |
#define | GRAPH_TASK_DELAY (50 / portTICK_RATE_MS) |
#define | TERMINAL_TASK_PRIORITY (tskIDLE_PRIORITY + 1) |
#define | TERMINAL_TASK_DELAY (1000 / portTICK_RATE_MS) |
#define | ABOUT_TASK_PRIORITY (tskIDLE_PRIORITY + 1) |
#define | ABOUT_TASK_DELAY (33 / portTICK_RATE_MS) |
Event bits definition | |
#define | EVENT_DISPLAY_INIT (0x01UL) |
#define | EVENT_DISPLAY_GRAPH (0x02UL) |
#define | EVENT_DISPLAY_TERMINAL (0x04UL) |
#define | EVENT_DISPLAY_ABOUT (0x08UL) |
#define | EVENT_ALL_BITS (0x0FUL) |
Functions | |
static void | cdc_rx_handler (uint8_t instance) |
Interrupt handler for reception from EDBG Virtual COM Port. More... | |
void | demotasks_init (void) |
Initialize tasks and resources for demo. More... | |
Tasks for demo | |
static void | main_task (void *params) |
Main demo task. More... | |
static void | graph_task (void *params) |
Graph task. More... | |
static void | terminal_task (void *params) |
Terminal task. More... | |
static void | about_task (void *params) |
About task. More... | |
static void | uart_task (void *params) |
UART task. More... | |
Menu and display configuration | |
#define | MENU_HEIGHT 8 |
Height of menu bar. More... | |
#define | MENU_ITEM_WIDTH (((GFX_MONO_LCD_WIDTH - (MENU_NUM_ITEMS - 1))) / MENU_NUM_ITEMS) |
Width per menu item. More... | |
#define | CANVAS_HEIGHT ((GFX_MONO_LCD_HEIGHT / 2) - (MENU_HEIGHT + 1)) |
Height of area in which to draw content. More... | |
#define | CANVAS_WIDTH (GFX_MONO_LCD_WIDTH) |
Width of area in which to draw content. More... | |
#define | CANVAS_GRAPH_Y_OFFSET (GFX_MONO_LCD_HEIGHT / 2) |
Offset of Y-coordinate for display buffer of graph. More... | |
#define | TERMINAL_LINES (1 + ((CANVAS_HEIGHT - SYSFONT_HEIGHT) / (SYSFONT_HEIGHT + 1))) |
Character lines on display. More... | |
#define | TERMINAL_COLUMNS (CANVAS_WIDTH / SYSFONT_WIDTH) |
Character columns on display. More... | |
#define | TERMINAL_BUFFER_LINES (1 + TERMINAL_LINES) |
Character lines in terminal buffer. More... | |
#define | TERMINAL_BUFFER_COLUMNS (1 + TERMINAL_COLUMNS) |
Character columns in terminal buffer. More... | |
enum | menu_items { MENU_ITEM_GRAPH, MENU_ITEM_TERMINAL, MENU_ITEM_ABOUT, MENU_NUM_ITEMS } |
Available selections in menu. More... | |
Global constants and variables | |
static const char | menu_items_text [MENU_NUM_ITEMS][6] |
Labels for menu items. More... | |
static const char | about_text [] |
Text to display on about screen. More... | |
static struct usart_module | cdc_usart |
Instance for Embedded Debugger (EDBG) Virtual COM Port driver. More... | |
static uint8_t | graph_noise = 128 |
Pseudo-random noise for graph task. More... | |
static uint8_t | terminal_buffer [TERMINAL_BUFFER_LINES][TERMINAL_BUFFER_COLUMNS] |
Buffer for terminal text. More... | |
static uint8_t | terminal_line_offset |
Index of latest terminal line (first to be printed) More... | |
static xQueueHandle | terminal_in_queue |
Queue for incoming terminal characters. More... | |
static xSemaphoreHandle | display_mutex |
Semaphore to signal busy display. More... | |
static xSemaphoreHandle | terminal_mutex |
Semaphore to signal busy terminal buffer. More... | |
static EventGroupHandle_t | event_group = NULL |
The event group used. More... | |
static | OLED1_CREATE_INSTANCE (oled1, OLED1_EXT_HEADER) |
Instance for OLED1 Xplained Pro LED and button driver. More... | |