Introduced at day17.

1. Review of previous work

  • Measuring physical output waveforms.

  • Changing the (asm) code that causes those waveforms.

    • Cycle counting for asm instructions.

  • Using variables stored in SRAM.

  • State machine tick() with an assembly subroutine.

  • Bare metal interrupt and ISR configuration.

  • C programming with avr-gcc family of tools, without the Arduino IDE or framework.

  • C99 as a common standard.

  • Using make and a Makefile to orchestrate the compile — link — output — program process.

  • Precise timing of output waveforms by replacing a C function with a bespoke assembly function.

    • The time between the two end “blips” must be exactly the same for all displayed 16-bit values. The 0 and 1 times must also be exactly equal to each other.

    • This is designed by counting CPU cycles for each possible path through the function’s execution.

The example Makefile intentionally did not engage the C99 standard compliance option..

2. Demonstration of Knowledge Report

Lab 3 was a superset of the tasks / goals of the previous labs, so this report is focused on your version of the ShortSquawker.

The purpose of this report is to be a tour de force of your current skills and understanding of the course material.

From the Course Goals and Objectives, we’ve engaged with:

  • G-ASM — lots, asm on MSP430 is yet to come

  • G-HWSW — 30%

  • G-TMR — sick of this by now?

  • G-NEW — 40%

What should be included? The better question is: “What do you want to demonstrate that you know?”