This repository provides an Atmel Studio solution with a bare metal code example for an external interrupt wake up. In the main loop, the program starts by entering the CPU in Sleep Mode. When the button is pressed, the CPU wakes up and blinks the LED. After those operations, the CPU returns to Sleep Mode.
- PC6 - LED0 led on Curiosity Nano board is configured as output pin
- PC7 - SW0 button on Curiosity Nano board is configured as input pin with pull-up enable
- SLPCTRL - Configured for entering Idle Mode
- Atmel Studio 7.0.2397 or newer
- AVR-Dx 1.0.18 or newer Device Pack
- AVR128DA48 Curiosity Nano (DM164151)
=======
This repository provides an Atmel Studio solution with a bare metal code example for an external interrupt wake up. In the main loop, the program starts by entering the CPU in Sleep Mode. When the button is pressed, the CPU wakes up and blinks the LED. After those operations, the CPU returns to Sleep Mode.
More details and code examples on the AVR128DA48 can be found at the following links:
- Atmel Studio 7.0.2397 or newer (microchip.com/mplab/avr-support/atmel-studio-7)
- AVR-Dx 1.0.18 or newer Device Pack
- AVR128DA48 Curiosity Nano (DM164151)
The AVR128DA48 Curiosity Nano Development Board is used as test platform
The following configurations must be made for this project:
b9cf7b98a94fd06362d978525fdaf154f58655d6
- SLPCTRL
- Configured for entering Idle Mode when
SLEEP
instruction is executed
Pin | Configuration |
---|---|
PC6 (LED0) | Digital Output |
PC7 (SW0) | Digital Input |
-
Open the AVR_DA_WakeUp.atsln solution in Atmel Studio
-
Build the solution: right click on AVR_DA_WakeUp.atsln solution and select Build
-
Select the AVR128DA48 Curiosity Nano on-board debugger in the Tool section of the project settings:
- Right click on the project and click Properties;
- Click Tool tab on the left panel, select the corresponding debugger and save the configuration (Ctrl + S)
- Program the project to the board: select AVR_DA_WakeUp.atsln project and click Start Without Debugging:
This example demonstrates a simple implementation of a sleep operation with an external interrupt triggering an LED blink.