Go to file
Jay Robson 16254662b9 readme 2024-10-02 23:53:11 +10:00
.gitignore add forced inlines 2024-10-01 13:39:28 +10:00
Project.jpg add README 2024-10-01 01:54:17 +10:00
README.md readme 2024-10-02 23:53:11 +10:00
buttons.cpp improvements 2024-09-30 23:25:16 +10:00
buttons.hpp added song skipping 2024-09-29 18:07:58 +10:00
dac.hpp can now interface with eeprom; improved computer communication 2024-08-28 13:10:57 +10:00
data.cpp added song skipping 2024-09-29 18:07:58 +10:00
data.hpp added song skipping 2024-09-29 18:07:58 +10:00
eeprom.cpp optimise I2C 2024-10-01 16:19:43 +10:00
eeprom.hpp optimise I2C 2024-10-01 16:19:43 +10:00
entry.hpp improvements 2024-09-30 23:25:16 +10:00
indicator.cpp optimisations 2024-08-31 16:31:19 +10:00
indicator.hpp can now interface with eeprom; improved computer communication 2024-08-28 13:10:57 +10:00
port.hpp update readme, remove instruction, improve port.hpp 2024-10-02 23:33:45 +10:00
scheduler.cpp update readme, remove instruction, improve port.hpp 2024-10-02 23:33:45 +10:00
scheduler.hpp added track skipping 2024-09-27 22:46:51 +10:00
serial.cpp can now interface with eeprom; improved computer communication 2024-08-28 13:10:57 +10:00
serial.hpp added bufferless i2c implementation 2024-08-31 01:53:25 +10:00
soft_twi.cpp optimise I2C 2024-10-01 16:19:43 +10:00
soft_twi.hpp optimise I2C 2024-10-01 16:19:43 +10:00
timing.hpp initial commit 2024-08-19 22:43:24 +10:00
tone-generator.ino optimise I2C 2024-10-01 16:19:43 +10:00
tone.cpp use integer math only for tone generation 2024-08-26 13:02:17 +10:00
tone.hpp add forced inlines 2024-10-01 13:39:28 +10:00
tones.cpp optimisations 2024-08-31 16:31:19 +10:00
tones.hpp optimisations 2024-08-31 16:31:19 +10:00
util.hpp add forced inlines 2024-10-01 13:39:28 +10:00

README.md

Overview

This uses an AVR microcontroller (ATMega328P-PU).

Project

Pin Description

Pin(s) Purpose
0-7 8-bit DAC (for audio)
8 Next button
9-10 LEDs
11-13 ISP Programmer, otherwise unused
A0-A3 Serial: DTR, TXD, RXD, CTS
A4-A5 I2C: SDA, SCL

Instruction Set

ID Name Size Layout
0 stop 1 id (3), empty (5)
1 setup 8 id (3), us_per_tick (29), amplitude (8), size (24)
2 set 3 id (3), index (5), frequency (12), empty (4)
3 set-ts 5 id (3), index (5), ticks (20), frequency (12)
4 clear 1 id (3), index (5)
5 clear-ts 4 id (3), index (5), ticks (20), empty (4)