This repository provides an Atmel Studio solution with a bare metal code example for an LED dimming implemented using a PWM signal. The example demonstrates the basic functionality of Timer/Counter Type A used to generate a PWM signal. The output waveform is connected to the on-board LED. The PWM duty cycle value is incremented continuously until it reaches the maximum value and then is reloaded to 0. This produces the dimming effect of the LED.
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
TCA1:
- Single-slope PWM Mode
- Compare channel 2 enabled
- Input clock 4Mhz
The following configurations must be made for this project:
Pin | Configuration |
---|---|
PC6 (LED0) | Digital Output |
-
Open the AVR-DA_LED_dimming_PWM.atsln solution in Atmel Studio
-
Build the solution: right click on AVR-DA_LED_dimming_PWM 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_LED_dimming_PWM project and click Start Without Debugging:
The example demonstrates the basic functionality of Timer/Counter Type A used to generate a PWM signal.