SAHIL-SANGHVI(1)→ TERMINAL(1)

Embedded AVR Projects

Four assignments on an ATmega2560: bit-manipulation in AVR assembly, a signalling exercise, an interrupt-driven LCD display, and a C-based digital clock.

project→ sourceAssembly

README

AVR C

Embedded AVR Projects

Four assignments from a computer architecture course, working directly against an ATmega2560 (Arduino Mega) — from raw bit manipulation in AVR assembly up to a C-based LCD digital clock driven by timer interrupts.

Project What it does
assignment-1-bit-manipulation/ Three AVR assembly routines: resetting the rightmost run of set bits, 16-bit addition with carry propagation across register pairs, and a two's-complement bit trick.
assignment-2-signalling/ An AVR assembly signalling exercise (see a2-description.pdf for the spec).
assignment-3-lcd-display/ Four-part LCD + keypad program: timer-interrupt-driven display, a scrolling message sign, and reading/displaying keypad input. Built against the DFRobot LCD Keypad Shield driver in lib/ (see Attribution below).
assignment-4-digital-clock/ A digital clock in C (main.c) — interrupt-driven timekeeping rendered to the LCD.

Attribution

assignment-3-lcd-display/lib/ (lcd.asm, LCDdefs.inc, lcd_example.asm) is a course-provided LCD driver library for the DFRobot LCD Keypad Shield, written by Keegan van der Laag and adapted from a public AVR Freaks driver — included here only because Part D of Assignment 3 depends on it to build. It is not my own work; only display_partA.asm through display_partD.asm are.

Building

Assembly files assemble/link with Microchip Studio (or avra/avr-gcc toolchains) targeting the ATmega2560. assignment-4-digital-clock/main.c builds with avr-gcc against avr/io.h and avr/interrupt.h.

🎓 Project Context

Built as part of CSC 230: Introduction to Computer Architecture at the University of Victoria.

⚠️ Academic Integrity Notice

This repository is maintained for portfolio and educational purposes only. If you are currently enrolled in CSC 230 at the University of Victoria or a similar computer architecture course, please note that using this code in your own assignments may constitute a violation of Academic Integrity policies.