https://github.com/pbergstrom90/embeddedarduino
AVR LED Control Project, based around configuring Timers, ADC, GPIO and UART in C. April 2024.
https://github.com/pbergstrom90/embeddedarduino
adc c embedded embedded-c gpio hardware-registers timers uart
Last synced: about 1 year ago
JSON representation
AVR LED Control Project, based around configuring Timers, ADC, GPIO and UART in C. April 2024.
- Host: GitHub
- URL: https://github.com/pbergstrom90/embeddedarduino
- Owner: PBergstrom90
- License: mit
- Created: 2024-04-09T14:14:36.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-28T15:15:01.000Z (over 1 year ago)
- Last Synced: 2025-03-22T07:49:41.693Z (over 1 year ago)
- Topics: adc, c, embedded, embedded-c, gpio, hardware-registers, timers, uart
- Language: C
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AVR - Programming hardwareregisters for an Arduinoboard
This repository contains five different branches, each focusing on specific tasks related to programming AVR hardware registers for Arduinoboards.
## Branches and Tasks
### 1. Deluppgift01-Timer1 (Timer)
#### Instructions:
- Configure TIMER1 to blink an LED with 200 ms on/off cycles.
- Use GPIO code to control an LED connected to Arduino/Freenove pin 3.
- Utilize timer compare A interrupt to toggle the LED.
### 2. Deluppgift02-ADCread (ADC from Potentiometer)
#### Instructions:
- Connect a potentiometer as a voltage divider to pin A0.
- Set up ADC and read the value via hardware registers.
- Print the read value and calculated voltage on pin A0 every second via the serial port.
### 3. Deluppgift03-LEDcmd (LED Control from Command Line)
#### Instructions:
- Connect an LED to pin 3 (PWM capable).
- Implement a configurable timer with Timer1.
- Create a command interpreter that handles the command `ledpower
### 4. Deluppgift04-ButtonCounter (Using Counter Mode with Timer1)
#### Instructions:
- Write a counter for the number of button presses.
- Use Timer1 to measure the input from pin 5.
- Print the number of button presses every second.
### 5. Deluppgift05-RampLED (Control PWM up and down)
#### Instructions:
- Ramp an LED's power linearly from 0-255 and then down periodically.
- Control the ramp time via a command sent through the serial port, e.g., `ledramptime 500` milliseconds.
### Main
- Mainbranch is currently synced with "Deluppgift03-LEDcmd" and does not represent the full scale of the project.
- Please select different branches for different parts of the project.
---
## How to Use Each Branch
1. **Clone the Repository**
```bash
git clone
```
2. **Open Project in VS Code**
- Navigate to the project directory in your terminal.
- Run `code .` to open the project in Visual Studio Code.
3. **PlatformIO Extension**
- Make sure you have the PlatformIO extension installed in VS Code.
- In the PlatformIO toolbar at the bottom, select the correct board.
- Click on the "Upload" button (arrow icon) to build and upload the code to the board.
4. **View Serial Monitor Output**
- Open the Serial Monitor by clicking on the plug icon in the PlatformIO toolbar at the bottom to view the program output.