RSGC ACES: ICS4U-E AVR Assembly: ATtiny85 Tasks |
Project 3.4 Three-Level Shiftout (C(High) → Register(Mid) → Assembly(Low)) :
(Developed 2025 01 31) To draw a direct comparison between the size of the executable code and to demonstrate your ability to write code for all three levels (High, Register and Assembly) you are asked to develop an application for each level that shifts out a 16-bit word to a pair of Morland Bargraph V4s that you have been lent. The example in the photo shifts out 0x0FF0.
Your code will be developed for the ATtiny85 as only three control lines are required and for practice. Each level of code will allow the user to implement either an LSBFIRST or MSBFIRST order with minimal modification.
The challenge is to write strong conventional code that requires a minimum demand of program storage for each code level. I have provided my results below for High, Register and Assembly level, respectively. Take it as a challenge to better these results.
ShiftoutDualMBV4HighLevel.ino
ShiftoutDualMBV4RegisterLevel.ino
ShiftoutDualMBV4LowLevel.S
Click on the image to the right to see the 5 hardware components for this project.
This task asks you to develop the shortest, most efficient, standalone AVR Assembly Language Blink code that makes use of the eor instruction, while still maintaining strong assembly coding conventions.