MPLAB® Harmony v3 Drivers on SAM C21 MCUs Using FreeRTOS™: Step 3

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

Configure LED Pin

In this step, the User LED on the SAM C21 Xplained Pro Evaluation Kit will be configured according to the Led Connection table:

LED connection table is displayed

Under the Resource Management tab, expand Device Resources > Board Support Packages (BSPs)

  • Select and double-click on SAM C21 Xplained Pro BSP to add it to the project.

Expand Board Support Packages

Select SAM C21 Xplained Pro BSP and view the Configuration Options on the right.

Depending on the requirements of the application, the BSP default configuration can be changed using the GUI. For this tutorial, we will use the default configurations.

Select SAM C21 Xplained Pro BSP and view the Configuration Options

Select the MCC Pin Settings tab and then scroll down to the PORT pin PA15 (Pin Number #32) in the Pin ID column and verify that PA15 is set as an output pin for LED functionality.

Configure pin number 32

The LED on the SAM C21 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.

Set a name for the default template main file generated by MHC

​The name of the default main.c is changed to main_c21.c to indicate that the referred main.c is for the SAM C21 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.

The Configuration Options tab is displayed

Expand Application 0 Configuration and change the Application Name to "app_sensor_thread". This will create an RTOS thread _APP_SENSOR_THREAD_Tasks. Set Stack Size (in bytes) to 1024.

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

Expand Application 0 Configuration

Expand Application 1 Configuration and change the Application Name to "app_eeprom_thread". This will create RTOS thread _APP_EEPROM_THREAD_Tasks. Set Stack Size (in bytes) to 768.

Expand Application 2 Configuration and change the Application Name to "app_user_input_thread". This will create RTOS thread _APP_USER_INPUT_THREAD_Tasks. Set Stack Size (in bytes) to 512.

Accept the default RTOS Configuration for both threads.

Expand Application 1 Configuration

Back to top