Getting Started with MPLAB® Harmony v3 Drivers on SAM D21 MCUs Using FreeRTOS™: Step 3

Last modified by Microchip on 2023/11/15 13:06

Configure LED Pin

In this step, the User LED on the SAM D21 Xplained Pro Evaluation Kit will be configured according to the PB30_GPIO_LED design schematic.

PB30 GPIO LED connection

PB30 GPIO LED Configuration

PB30 GPIO LED design schematic

Select the Pin Settings tab and then scroll down to PORT pin PB30 (Pin Number 59) in the Pin ID column and configure PB30 as an output pin for LED functionality as shown.

LED pin configuration

The LED on the SAM D21 Xplained Pro board is active low. Configure the LED in the default OFF state by configuring the Latch value to High.

Back to Top


Rename Default File

Under the Project Graph tab, click on System, and give a name of your choice to the default template main file generated by MCC.

Main file name setup

The name of the default main.c is changed to main_d21.c to indicate that the referred main.c is for the SAM D21 getting started training module.

Back to Top


Configure Application Threads

Go to the Project Graph and select Harmony Core Service.

Select Harmony core service


The Configuration Options tab shows that for an MPLAB® Harmony Project, MCC automatically enables the generation of application files (app.c and app.h).
Change the Number of Applications to 3.

Change the number of applications


Expand Application 0 Configuration and change the Application Name to "app_sensor_thread". This will create RTOS thread _APP_SENSOR_THREAD_Tasks.

Expand RTOS Configuration to configure Stack Size, Task Priority, and Task Delay. For this thread, use the default values.

Change the Application Name to app_sensor_thread


Expand Application 1 Configuration and change the Application Name to "app_eeprom_thread". This will create RTOS thread _APP_EEPROM_THREAD_Tasks.

Expand Application 2 Configuration and change the Application Name to "app_user_input_thread". This will create RTOS thread _APP_USER_INPUT_THREAD_Tasks.

Accept the default RTOS Configuration for both threads.

Change the Application Name of Application 2 to app_user_input_thread

Back to Top