Create your first Motor Control Application using MPLAB Harmony v3: Step 3

Last modified by Microchip on 2023/11/09 09:07

Configure Switch Button Pin with EIC

Add the External Interrupt Controller (EIC) to the project.

Under the Available Components tab, expand Peripheral > EIC. Select and double-click on EIC to add the EIC module to the project.

Peripheral > EIC

Figure 1

Once it is successfully added, EIC will be listed under the Active Components tab and the Project Graph.

Active Components tab

Figure 2


When a module is added to the project graph, MPLAB® Harmony Configurator (MHC) automatically enables the clock to the module. The default EIC clock source is Generic Clock Controller 1 (GCLK1). You can verify the clock source using the Clock Configuration view.

Go back to the project graph and configure the EIC block as shown in Figure 3 to generate an interrupt on every switch press (S2 and S3) and enable debounce functionality on switch pins.

EIC block

Figure 3

Select the MHC Pin Settings tab and configure PD09 and PD10 as EIC Switch input pins as shown in Figure 4.

Pin Settings tab

Figure 4


EIC channel 4 (EIC_EXINT4) # PIN PD09 and EIC channel 5 (EIC_EXINT5) # PIN PD10 are selected here. Because switches S2 and S3 of MLCV2 board are connected to these specific EIC channel pins.

This information is available in Chapter 1, "PIM to MCU Mapping" of "ATSAME54 100-Pin Motor Control Plugin Module Information Sheet"

Configure LED Pin

Open the MHC Pin Settings tab and configure PB26 (LED0) and PB27 (LED1) pins as GPIO output.

Pin Settings tab

Figure 5

This application uses two LEDs as indicators of Motor START state (LED0) and Motor REVERSE direction (LED1).

Pin PB26 and pin PB27 are selected because LEDs (D2 and D17) of the MLCV2 board are connected to these specific pins.

The final project graph will be as shown in Figure 6:

Final project graph

Figure 6