Skip to content

A collection of embedded systems projects using the MSPM0G3507 LaunchPad, demonstrating C and Assembly programming, real-time control, sensor interfacing, finite state machines, digital audio, LCD graphics, and interactive game design.

Notifications You must be signed in to change notification settings

niranjannt/319KLabs

Repository files navigation

ECE319K Labs and Projects - MSPM0G3507 LaunchPad

Overview

This repository contains all lab assignments for ECE319K using the MSPM0G3507 LaunchPad development kit. The projects involve:

  • Learning Cortex-M0+ programming
  • Interfacing LEDs, switches, ADC, DAC, and UART
  • Implementing FSMs (Traffic Light, Game logic)
  • Real-time position monitoring
  • Creating a digital piano and a game design project (arcade basketball)
  • Writing code in Assembly and C
  • Debugging using Debug_Dump and UART output

All labs use Code Composer Studio (CCS).


Labs

Lab 1: Introduction to Cortex-M0+ (Assembly)

  • Basic assembly programming
  • Hands-on with LaunchPad initialization
  • Individual work

Lab 2: Switch and LED Interfacing (Assembly)

  • Connect switches and LEDs
  • Read switch inputs and control LEDs
  • Individual work

Lab 3: Introduction to C and Debugging

  • Learn basic C programming
  • Debugging with Debug_Dump and UART
  • Individual work

Lab 4: Traffic Light FSM (C)

  • Implement traffic light finite state machine
  • Outputs to LEDs
  • Inputs from switches
  • Group work (2 students)

Lab 5: Digital Piano (C)

  • Implement 5-bit DAC to generate sound
  • Control notes via switches
  • Group work (2 students)

Lab 6: LCD Device Driver (Assembly)

  • Write fixed-point decimal output to LCD
  • Implement device driver
  • Group work (2 students)

Lab 7: Real-Time Position Monitor (C + Assembly)

  • Use ADC to read analog input
  • Display position on LCD
  • Use interrupts for real-time updates
  • Group work (2 students)

Lab 8: Distributed DAS (C + Assembly)

  • Use serial port interrupts
  • Implement FIFO queue
  • Real-time communication between two microcontrollers
  • Group work (2 students)

Lab 9: Arcade Basketball Game (C)

  • Implement a 2-player basketball arcade game
  • Use ST7735 LCD, switches, LEDs, and sound
  • Multiple languages: English and Indonesian
  • Game engine runs at 30 Hz
  • Group work (2 students)

Hardware

  • MSPM0G3507 LaunchPad
  • Breadboards, LEDs, resistors
  • 5-bit binary weighted DAC
  • Switches and push-buttons
  • Optional: two microcontrollers for real-time monitoring

Software

  • Code Composer Studio (CCS)
  • MSPM0G3507 support libraries
    • LaunchPad.h
    • Clock.h
    • UART.h
    • Timer.h
    • Dump.h
    • ST7735.h
    • ADC1.h
    • DAC5.h
  • Standard C libraries: stdio.h, stdint.h, string.h

Features Implemented

  • Traffic light finite state machine
  • LED and switch interfacing
  • Digital piano using DAC
  • LCD device driver with fixed-point output
  • Real-time position monitor (single and distributed)
  • Arcade basketball game with:
    • Player score tracking
    • Multiple language support (English and Indonesian)
    • Ball and hoop sprite animation
    • Sound effects using DAC
    • Timer-based game engine
    • Multi-player input handling

Setup Instructions

  1. Install Code Composer Studio (CCS).
  2. Connect MSPM0G3507 LaunchPad via USB.
  3. Open the project in CCS.
  4. Compile and flash the code to the LaunchPad.
  5. Use switches, LEDs, and LCD as per lab instructions.

Authors

  • Student 1: Delaney Acosta
  • Student 2: Niranjan Telkikar

Notes

  • All assembly and C programs are fully commented for clarity.
  • Lab 3 debugging routines should be used with Debug_Dump() for output verification.
  • Real-time tasks are implemented using Timer interrupts.
  • For ADC input, clock speed may need to be adjusted to 40 MHz if 80 MHz is unstable.

About

A collection of embedded systems projects using the MSPM0G3507 LaunchPad, demonstrating C and Assembly programming, real-time control, sensor interfacing, finite state machines, digital audio, LCD graphics, and interactive game design.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published