C Programming Assignments

C Programming 1

Due Apr 12 by 11:59pm on Canvas

Instructions, Assignment files (zip)

C Programming 2

Due Apr 25 by 11:59pm on Canvas

Instructions, Assignment files (zip)

Midterm Review

The midterm will be similar to prior exams. Note that some prior versions of the course covered slightly different material that we have not discussed in lecture. Concepts that we have not gone over in lecture will not be on the exam.

Old exams (Canvas link)

Lab Assignments

Lab policies, overview, and grading. General information about labs, policies, grading and advice on teamwork and time management.

Coding standard. Coding standard for labs. Following these guidelines will help make sure your code is easy to read which will both help you and your teammates debug and allow the TAs to more easily understand your code to help you.

Lab Report Template. Template for lab reports linked as a Google Doc you can copy and modify to write your lab reports.

Intro to electronics. Intro to working with hardware and electronics with an overview of basic components, resistors, capacitors, LEDs, breadboards etc. This document is meant as a resource for anyone unfamiliar with these topics and contains links to short videos introducing these concepts. For a more in depth introduction as well as additional resources on getting started with Arduinos, check out this excellent series of tutorials by Jon Froehlich: makeabilitylab.github.io/physcomp/electronics/

Arduino Hardware Guide. Document with helpful information about pin mapping on the Arduino, timers, etc.

ATmega2560 Datasheet. Complete 400+ page datasheet with detailed informationabout all the functionality of the ATmega2560 chip.

Arduino Mega Shematic. High resolution schematic of the Arduino Mega board.



Lab 1: Getting Started with the Arduino Mega

Lab 1 Canvas submission page



Lab 2: Digital I/O and Timers

LED Matrix Guide

Lab 2 Canvas submission page



Lab 3: Schedulers

Interrupt Concepts and Guide

Lab 3 Canvas submission page



Lab 4: RTOS + Project

Free RTOS library
Example program
FreeRTOS Debugging Tips

Lab 4 Canvas submission page