diff --git a/apps/space12/Makefile b/apps/space12/Makefile index 948280e..c4d63a3 100644 --- a/apps/space12/Makefile +++ b/apps/space12/Makefile @@ -16,7 +16,7 @@ all: space12.out # Compile: create object files from C source files. -space12.o: space12.c ../../drivers/avr/eeprom.h ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../extra/mmelody.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h ../../utils/uint8toa.h flasher.h spacey.h +space12.o: space12.c ../../drivers/avr/eeprom.h ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../extra/mmelody.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h ../../utils/uint8toa.h flasher.h spacey.h $(CC) -c $(CFLAGS) $< -o $@ flasher.o: flasher.c ../../drivers/avr/system.h flasher.h @@ -52,9 +52,6 @@ navswitch.o: ../../drivers/navswitch.c ../../drivers/avr/delay.h ../../drivers/a mmelody.o: ../../extra/mmelody.c ../../drivers/avr/system.h ../../extra/mmelody.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker.o: ../../extra/squeaker.c ../../drivers/avr/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -73,7 +70,7 @@ uint8toa.o: ../../utils/uint8toa.c ../../drivers/avr/system.h # Link: create ELF output file from object files. -space12.out: space12.o flasher.o spacey.o eeprom.o pio.o system.o timer.o display.o led.o ledmat.o navswitch.o mmelody.o squeaker.o ticker.o tweeter.o task.o tinygl.o uint8toa.o +space12.out: space12.o flasher.o spacey.o eeprom.o pio.o system.o timer.o display.o led.o ledmat.o navswitch.o mmelody.o ticker.o tweeter.o task.o tinygl.o uint8toa.o $(CC) $(CFLAGS) $^ -o $@ -lm $(SIZE) $@ diff --git a/apps/space12/Makefile.test b/apps/space12/Makefile.test index 12f8f5f..e6962c6 100644 --- a/apps/space12/Makefile.test +++ b/apps/space12/Makefile.test @@ -14,7 +14,7 @@ all: space12 # Compile: create object files from C source files. -space12-test.o: space12.c ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../drivers/test/avrtest.h ../../drivers/test/eeprom.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/mmelody.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h ../../utils/uint8toa.h flasher.h spacey.h +space12-test.o: space12.c ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../drivers/test/avrtest.h ../../drivers/test/eeprom.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/mmelody.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h ../../utils/uint8toa.h flasher.h spacey.h $(CC) -c $(CFLAGS) $< -o $@ flasher-test.o: flasher.c ../../drivers/test/system.h flasher.h @@ -53,9 +53,6 @@ timer-test.o: ../../drivers/test/timer.c ../../drivers/test/system.h ../../drive mmelody-test.o: ../../extra/mmelody.c ../../drivers/test/system.h ../../extra/mmelody.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker-test.o: ../../extra/squeaker.c ../../drivers/test/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker-test.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -75,14 +72,14 @@ uint8toa-test.o: ../../utils/uint8toa.c ../../drivers/test/system.h # Link: create executable file from object files. -space12: space12-test.o flasher-test.o spacey-test.o display-test.o led-test.o ledmat-test.o navswitch-test.o eeprom-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o uint8toa-test.o +space12: space12-test.o flasher-test.o spacey-test.o display-test.o led-test.o ledmat-test.o navswitch-test.o eeprom-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o uint8toa-test.o $(CC) $(CFLAGS) $^ -o $@ -lrt # Clean: delete derived files. .PHONY: clean clean: - -$(DEL) space12 space12-test.o flasher-test.o spacey-test.o display-test.o led-test.o ledmat-test.o navswitch-test.o eeprom-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o uint8toa-test.o + -$(DEL) space12 space12-test.o flasher-test.o spacey-test.o display-test.o led-test.o ledmat-test.o navswitch-test.o eeprom-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o uint8toa-test.o diff --git a/apps/space12/imperial_march.mmel b/apps/space12/imperial_march.mmel index 4493630..6c4b789 100644 --- a/apps/space12/imperial_march.mmel +++ b/apps/space12/imperial_march.mmel @@ -1 +1 @@ -"*1632 ///D+///D+///D+///D#+//A#F#///D#//A#G/// ///" +"*832 ///D+///D+///D+///D#+//A#F#///D#//A#G/// ///" diff --git a/apps/space12/space12.c b/apps/space12/space12.c index b29cc0e..fd8f7f0 100644 --- a/apps/space12/space12.c +++ b/apps/space12/space12.c @@ -19,7 +19,6 @@ #include "uint8toa.h" #include "../fonts/font3x5_1.h" #include "tweeter.h" -#include "squeaker.h" #include "mmelody.h" #include "pio.h" diff --git a/apps/squeak1/Makefile b/apps/squeak1/Makefile index 46ac251..6b73258 100644 --- a/apps/squeak1/Makefile +++ b/apps/squeak1/Makefile @@ -16,7 +16,7 @@ all: squeak1.out # Compile: create object files from C source files. -squeak1.o: squeak1.c ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/led.h ../../extra/mmelody.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../utils/task.h +squeak1.o: squeak1.c ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/led.h ../../extra/mmelody.h ../../extra/ticker.h ../../extra/tweeter.h ../../utils/task.h $(CC) -c $(CFLAGS) $< -o $@ pio.o: ../../drivers/avr/pio.c ../../drivers/avr/pio.h ../../drivers/avr/system.h @@ -34,9 +34,6 @@ led.o: ../../drivers/led.c ../../drivers/avr/pio.h ../../drivers/avr/system.h .. mmelody.o: ../../extra/mmelody.c ../../drivers/avr/system.h ../../extra/mmelody.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker.o: ../../extra/squeaker.c ../../drivers/avr/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -49,7 +46,7 @@ task.o: ../../utils/task.c ../../drivers/avr/system.h ../../drivers/avr/timer.h # Link: create ELF output file from object files. -squeak1.out: squeak1.o pio.o system.o timer.o led.o mmelody.o squeaker.o ticker.o tweeter.o task.o +squeak1.out: squeak1.o pio.o system.o timer.o led.o mmelody.o ticker.o tweeter.o task.o $(CC) $(CFLAGS) $^ -o $@ -lm $(SIZE) $@ diff --git a/apps/squeak1/Makefile.test b/apps/squeak1/Makefile.test index 125a10e..bf07ef8 100644 --- a/apps/squeak1/Makefile.test +++ b/apps/squeak1/Makefile.test @@ -14,7 +14,7 @@ all: squeak1 # Compile: create object files from C source files. -squeak1-test.o: squeak1.c ../../drivers/led.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/mmelody.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../utils/task.h +squeak1-test.o: squeak1.c ../../drivers/led.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/mmelody.h ../../extra/ticker.h ../../extra/tweeter.h ../../utils/task.h $(CC) -c $(CFLAGS) $< -o $@ led-test.o: ../../drivers/led.c ../../drivers/led.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h @@ -35,9 +35,6 @@ timer-test.o: ../../drivers/test/timer.c ../../drivers/test/system.h ../../drive mmelody-test.o: ../../extra/mmelody.c ../../drivers/test/system.h ../../extra/mmelody.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker-test.o: ../../extra/squeaker.c ../../drivers/test/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker-test.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -51,14 +48,14 @@ task-test.o: ../../utils/task.c ../../drivers/test/system.h ../../drivers/test/t # Link: create executable file from object files. -squeak1: squeak1-test.o led-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o +squeak1: squeak1-test.o led-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o ticker-test.o tweeter-test.o task-test.o $(CC) $(CFLAGS) $^ -o $@ -lrt # Clean: delete derived files. .PHONY: clean clean: - -$(DEL) squeak1 squeak1-test.o led-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o + -$(DEL) squeak1 squeak1-test.o led-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o ticker-test.o tweeter-test.o task-test.o diff --git a/apps/squeak1/squeak1.c b/apps/squeak1/squeak1.c index 9da9b4f..ea62753 100644 --- a/apps/squeak1/squeak1.c +++ b/apps/squeak1/squeak1.c @@ -8,7 +8,6 @@ #include "pio.h" #include "task.h" #include "tweeter.h" -#include "squeaker.h" #include "mmelody.h" diff --git a/apps/squeak2/Makefile b/apps/squeak2/Makefile index b09976d..cd5ffd8 100644 --- a/apps/squeak2/Makefile +++ b/apps/squeak2/Makefile @@ -16,7 +16,7 @@ all: squeak2.out # Compile: create object files from C source files. -squeak2.o: squeak2.c ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/button.h ../../drivers/led.h ../../extra/mmelody.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../utils/task.h +squeak2.o: squeak2.c ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/button.h ../../drivers/led.h ../../extra/mmelody.h ../../extra/ticker.h ../../extra/tweeter.h ../../utils/task.h $(CC) -c $(CFLAGS) $< -o $@ pio.o: ../../drivers/avr/pio.c ../../drivers/avr/pio.h ../../drivers/avr/system.h @@ -37,9 +37,6 @@ led.o: ../../drivers/led.c ../../drivers/avr/pio.h ../../drivers/avr/system.h .. mmelody.o: ../../extra/mmelody.c ../../drivers/avr/system.h ../../extra/mmelody.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker.o: ../../extra/squeaker.c ../../drivers/avr/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -52,7 +49,7 @@ task.o: ../../utils/task.c ../../drivers/avr/system.h ../../drivers/avr/timer.h # Link: create ELF output file from object files. -squeak2.out: squeak2.o pio.o system.o timer.o button.o led.o mmelody.o squeaker.o ticker.o tweeter.o task.o +squeak2.out: squeak2.o pio.o system.o timer.o button.o led.o mmelody.o ticker.o tweeter.o task.o $(CC) $(CFLAGS) $^ -o $@ -lm $(SIZE) $@ diff --git a/apps/squeak2/Makefile.test b/apps/squeak2/Makefile.test index ba27793..f998e7b 100644 --- a/apps/squeak2/Makefile.test +++ b/apps/squeak2/Makefile.test @@ -14,7 +14,7 @@ all: squeak2 # Compile: create object files from C source files. -squeak2-test.o: squeak2.c ../../drivers/button.h ../../drivers/led.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/mmelody.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../utils/task.h +squeak2-test.o: squeak2.c ../../drivers/button.h ../../drivers/led.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/mmelody.h ../../extra/ticker.h ../../extra/tweeter.h ../../utils/task.h $(CC) -c $(CFLAGS) $< -o $@ button-test.o: ../../drivers/button.c ../../drivers/button.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h @@ -38,9 +38,6 @@ timer-test.o: ../../drivers/test/timer.c ../../drivers/test/system.h ../../drive mmelody-test.o: ../../extra/mmelody.c ../../drivers/test/system.h ../../extra/mmelody.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker-test.o: ../../extra/squeaker.c ../../drivers/test/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker-test.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -54,14 +51,14 @@ task-test.o: ../../utils/task.c ../../drivers/test/system.h ../../drivers/test/t # Link: create executable file from object files. -squeak2: squeak2-test.o button-test.o led-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o +squeak2: squeak2-test.o button-test.o led-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o ticker-test.o tweeter-test.o task-test.o $(CC) $(CFLAGS) $^ -o $@ -lrt # Clean: delete derived files. .PHONY: clean clean: - -$(DEL) squeak2 squeak2-test.o button-test.o led-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o + -$(DEL) squeak2 squeak2-test.o button-test.o led-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o ticker-test.o tweeter-test.o task-test.o diff --git a/apps/squeak2/squeak2.c b/apps/squeak2/squeak2.c index 830cdf8..c7ca094 100644 --- a/apps/squeak2/squeak2.c +++ b/apps/squeak2/squeak2.c @@ -9,7 +9,6 @@ #include "pio.h" #include "task.h" #include "tweeter.h" -#include "squeaker.h" #include "mmelody.h" diff --git a/apps/squeak3/Makefile b/apps/squeak3/Makefile index 7b66df8..47be8b3 100644 --- a/apps/squeak3/Makefile +++ b/apps/squeak3/Makefile @@ -16,7 +16,7 @@ all: squeak3.out # Compile: create object files from C source files. -squeak3.o: squeak3.c ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h +squeak3.o: squeak3.c ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h $(CC) -c $(CFLAGS) $< -o $@ pio.o: ../../drivers/avr/pio.c ../../drivers/avr/pio.h ../../drivers/avr/system.h @@ -43,9 +43,6 @@ ledmat.o: ../../drivers/ledmat.c ../../drivers/avr/pio.h ../../drivers/avr/syste navswitch.o: ../../drivers/navswitch.c ../../drivers/avr/delay.h ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/navswitch.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker.o: ../../extra/squeaker.c ../../drivers/avr/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -61,7 +58,7 @@ tinygl.o: ../../utils/tinygl.c ../../drivers/avr/system.h ../../drivers/display. # Link: create ELF output file from object files. -squeak3.out: squeak3.o pio.o system.o timer.o button.o display.o led.o ledmat.o navswitch.o squeaker.o ticker.o tweeter.o task.o tinygl.o +squeak3.out: squeak3.o pio.o system.o timer.o button.o display.o led.o ledmat.o navswitch.o ticker.o tweeter.o task.o tinygl.o $(CC) $(CFLAGS) $^ -o $@ -lm $(SIZE) $@ diff --git a/apps/squeak3/Makefile.test b/apps/squeak3/Makefile.test index 560940e..02fb841 100644 --- a/apps/squeak3/Makefile.test +++ b/apps/squeak3/Makefile.test @@ -14,7 +14,7 @@ all: squeak3 # Compile: create object files from C source files. -squeak3-test.o: squeak3.c ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h +squeak3-test.o: squeak3.c ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h $(CC) -c $(CFLAGS) $< -o $@ button-test.o: ../../drivers/button.c ../../drivers/button.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h @@ -44,9 +44,6 @@ system-test.o: ../../drivers/test/system.c ../../drivers/test/avrtest.h ../../dr timer-test.o: ../../drivers/test/timer.c ../../drivers/test/system.h ../../drivers/test/timer.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker-test.o: ../../extra/squeaker.c ../../drivers/test/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker-test.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -63,14 +60,14 @@ tinygl-test.o: ../../utils/tinygl.c ../../drivers/display.h ../../drivers/test/s # Link: create executable file from object files. -squeak3: squeak3-test.o button-test.o display-test.o led-test.o ledmat-test.o navswitch-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o +squeak3: squeak3-test.o button-test.o display-test.o led-test.o ledmat-test.o navswitch-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o $(CC) $(CFLAGS) $^ -o $@ -lrt # Clean: delete derived files. .PHONY: clean clean: - -$(DEL) squeak3 squeak3-test.o button-test.o display-test.o led-test.o ledmat-test.o navswitch-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o + -$(DEL) squeak3 squeak3-test.o button-test.o display-test.o led-test.o ledmat-test.o navswitch-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o diff --git a/apps/squeak3/squeak3.c b/apps/squeak3/squeak3.c index 643b2bf..5804143 100644 --- a/apps/squeak3/squeak3.c +++ b/apps/squeak3/squeak3.c @@ -10,7 +10,6 @@ #include "pio.h" #include "task.h" #include "tweeter.h" -#include "squeaker.h" #include "tinygl.h" #include "../fonts/font3x5_1.h" diff --git a/apps/squeak4/Makefile b/apps/squeak4/Makefile index 5b06753..36ab149 100644 --- a/apps/squeak4/Makefile +++ b/apps/squeak4/Makefile @@ -16,7 +16,7 @@ all: squeak4.out # Compile: create object files from C source files. -squeak4.o: squeak4.c ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../extra/mmelody.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h +squeak4.o: squeak4.c ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../extra/mmelody.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h $(CC) -c $(CFLAGS) $< -o $@ pio.o: ../../drivers/avr/pio.c ../../drivers/avr/pio.h ../../drivers/avr/system.h @@ -43,9 +43,6 @@ ledmat.o: ../../drivers/ledmat.c ../../drivers/avr/pio.h ../../drivers/avr/syste mmelody.o: ../../extra/mmelody.c ../../drivers/avr/system.h ../../extra/mmelody.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker.o: ../../extra/squeaker.c ../../drivers/avr/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -61,7 +58,7 @@ tinygl.o: ../../utils/tinygl.c ../../drivers/avr/system.h ../../drivers/display. # Link: create ELF output file from object files. -squeak4.out: squeak4.o pio.o system.o timer.o button.o display.o led.o ledmat.o mmelody.o squeaker.o ticker.o tweeter.o task.o tinygl.o +squeak4.out: squeak4.o pio.o system.o timer.o button.o display.o led.o ledmat.o mmelody.o ticker.o tweeter.o task.o tinygl.o $(CC) $(CFLAGS) $^ -o $@ -lm $(SIZE) $@ diff --git a/apps/squeak4/Makefile.test b/apps/squeak4/Makefile.test index 5dbf72c..4eb34b5 100644 --- a/apps/squeak4/Makefile.test +++ b/apps/squeak4/Makefile.test @@ -14,7 +14,7 @@ all: squeak4 # Compile: create object files from C source files. -squeak4-test.o: squeak4.c ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/mmelody.h ../../extra/squeaker.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h +squeak4-test.o: squeak4.c ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../extra/mmelody.h ../../extra/ticker.h ../../extra/tweeter.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h $(CC) -c $(CFLAGS) $< -o $@ button-test.o: ../../drivers/button.c ../../drivers/button.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h @@ -44,9 +44,6 @@ timer-test.o: ../../drivers/test/timer.c ../../drivers/test/system.h ../../drive mmelody-test.o: ../../extra/mmelody.c ../../drivers/test/system.h ../../extra/mmelody.h $(CC) -c $(CFLAGS) $< -o $@ -squeaker-test.o: ../../extra/squeaker.c ../../drivers/test/system.h ../../extra/squeaker.h ../../extra/ticker.h - $(CC) -c $(CFLAGS) $< -o $@ - ticker-test.o: ../../extra/ticker.c $(CC) -c $(CFLAGS) $< -o $@ @@ -63,14 +60,14 @@ tinygl-test.o: ../../utils/tinygl.c ../../drivers/display.h ../../drivers/test/s # Link: create executable file from object files. -squeak4: squeak4-test.o button-test.o display-test.o led-test.o ledmat-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o +squeak4: squeak4-test.o button-test.o display-test.o led-test.o ledmat-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o $(CC) $(CFLAGS) $^ -o $@ -lrt # Clean: delete derived files. .PHONY: clean clean: - -$(DEL) squeak4 squeak4-test.o button-test.o display-test.o led-test.o ledmat-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o squeaker-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o + -$(DEL) squeak4 squeak4-test.o button-test.o display-test.o led-test.o ledmat-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o mmelody-test.o ticker-test.o tweeter-test.o task-test.o tinygl-test.o diff --git a/apps/squeak4/squeak4.c b/apps/squeak4/squeak4.c index 6b30289..3cc1f44 100644 --- a/apps/squeak4/squeak4.c +++ b/apps/squeak4/squeak4.c @@ -9,7 +9,6 @@ #include "pio.h" #include "task.h" #include "tweeter.h" -#include "squeaker.h" #include "mmelody.h" #include "tinygl.h" #include "../fonts/font3x5_1.h" diff --git a/extra/squeaker.c b/extra/squeaker.c deleted file mode 100644 index 2a912ea..0000000 --- a/extra/squeaker.c +++ /dev/null @@ -1,436 +0,0 @@ -/** @file squeaker.c - @author M. P. Hayes, UCECE - @date 14 April 2007 - @brief Play simple tunes with PWM. -*/ - -#define SQUEAKER_TRANSPARENT 1 - -#include "squeaker.h" - - -#define SQUEAKER_HOLDOFF_TIME 50e-3 -enum {SQUEAKER_PRESCALER = 256}; - - -/* By default notes are in the scale C4 -> C5. - Note the first 12 frets on a six string guitar covers 3 octaves - from the pitch E2 (82.41 Hz) to the pitch E5 (659.26 Hz). - - Tunes are specified using the notation C4C5F4G4C4 but for brevity - this can be simplified to C4C5F4GC where the previously specified - octave number persists. A problem with this notation is the - verbosity when we have something like B2C3B2C3. Most melodies will - only require 2 and 3 at the most octaves. The ABC music notation - uses CDEFGABcdefgabc'd'e'f'g'a'b'c' to denote 3 octaves from C2 to - C5? This uses numbers to indicate note duration, for example, C2 - denotes a C of twice the standard duration. - - For emphasis of first beat in bar, perhaps use ^ to indicate - louder, for example, C^. Similarly, to make a note quieter it - could have a v suffix. Alternatively, | bar markers could be - inserted and perhaps time signatures. - - By default notes are quarter-notes. It is probably best to define - speed in terms of quarter-notes (beats per minute) rather than bars - per minute since this requires bars to be defined. Two bars in 4/4 - could be represented by C^DEDC^BAB whereas two bars in 3/4 could be - represented by C^DEC^DE. - - So how should we denote note duration? We need to distinguish - between 2 identical quarter-notes (A A) played in succession and a - half-note since this sounds different. - - We could use AA to indicate two A quarter-notes. Alternatively, we - could use AA to indicate an A half-note. However, for a whole note - we would need to indicate this with AAAA. With the latter scheme - we could separate two indentical quarter notes with a comma, for - example, A,A. - - Rests are easy. Each space represents one rest of quarter-note - duration. Two spaces represent a half-note rest. Alternatively, - we could represent this with " /". - - From a sequencing point of view it is simpler if every symbol - represents a quarter-note rather than having variable length notes - since this alters the sequencing timing. This favours the approach - of using AA to denote a half-note. - - If I implement a simple attack/decay response then it would be - easier to use A/ for a half-note since we would interpret the / as - to keep playing the previous note without sounding it again. - Alternatively, when each new note is sounded there could be a short - delay. - - >num could indicate jump forward to label num while 3 to represent playing the notes ABC in succession 3 times. - This notation could be nested, for example, 2>3. - Perhaps denotes playing ABC indefinitely? No I prefer - a simple repeat. Use ABC: for an infinite repeat. - - represents ABCDEABCFG where ]n denotes alternate - endings. - -*/ - - - -static void -squeaker_ticker_set (squeaker_t squeaker) -{ - uint16_t speed; - - speed = squeaker->speed * squeaker->note_fraction; - -#if 0 - /* The division is performed first to reduce the chance of integer - overflow. This results in poorer accuracy when the poll_rate - is low. In practice, the poll_rate cannot be too low otherwise - the generated notes will be inaccurate. */ - TICKER_INIT (&squeaker->ticker, (squeaker->poll_rate / speed) * 60); -#else - TICKER_INIT (&squeaker->ticker, (squeaker->poll_rate / SQUEAKER_PRESCALER) - * 60 / speed); -#endif -} - - -/* Specify the default note length in fractions of a measure (bar). - A value of 4 is the default which makes each note a quarter note. */ -static void -squeaker_note_fraction_set (squeaker_t squeaker, uint8_t note_fraction) -{ - squeaker->note_fraction = note_fraction; - squeaker_ticker_set (squeaker); -} - - -enum {SQUEAKER_SCALE_SIZE = 12}; - -void -squeaker_note_set (squeaker_t squeaker, - squeaker_period_t period, - squeaker_period_t duty) -{ - squeaker->note_period = period; - squeaker->note_duty = duty; - squeaker->note_holdoff = squeaker->holdoff; -} - - -static void -squeaker_rest_play (squeaker_t squeaker) -{ - squeaker_note_set (squeaker, 0, 0); -} - - -static void -squeaker_note_play (squeaker_t squeaker, squeaker_note_t note) -{ - squeaker_period_t period; - squeaker_period_t duty; - uint8_t index; - uint8_t octave; - -#if 0 - /* See if we can play this note. */ - if (note < SQUEAKER_NOTE_MIN) - return; -#endif - - note -= SQUEAKER_NOTE_MIN; - octave = note / SQUEAKER_SCALE_SIZE; - index = note - octave * SQUEAKER_SCALE_SIZE; - - period = squeaker->scale_table[index]; - - while (octave-- > 0) - period >>= 1; - - duty = (period * squeaker->volume) >> 8; - - squeaker_note_set (squeaker, period, duty); - -#if 0 - printf ("note = %d, octave = %d, period = %d\n", - note, index / SQUEAKER_SCALE_SIZE, period); -#endif -} - - -static squeaker_note_t -squeaker_char_to_note (uint8_t ch) -{ - squeaker_note_t note; - /* A = 9, B = 11, C = 0, D = 2, E = 4, F = 5, G = 7 */ - static const squeaker_note_t const lookup[] = {9, 11, 0, 2, 4, 5, 7}; - - return lookup[ch - 'A']; - -#if 0 - - switch (ch) - { - default: - case 'A': - case 'B': - note = (ch - 'A') * 2 + 9; - break; - - case 'C': - case 'D': - case 'E': - note = (ch - 'C') * 2; - break; - - case 'F': - case 'G': - note = (ch - 'F') * 2 + 5; - break; - } -#endif - -#if 0 - switch (ch) - { - case 'A': - note = 9; break; - case 'B': - note = 11; break; - break; - case 'C': - note = 0; break; - case 'D': - note = 2; break; - case 'E': - note = 4; break; - case 'F': - note = 5; break; - case 'G': - note = 7; break; - default: - note = 0; - break; - } - -#endif - - return note; -} - - -/* Scan next part of melody until a note or end of melody is found. */ -static const char * -squeaker_scan (squeaker_t squeaker, const char *str) -{ - while (1) - { - uint8_t num; - char cmd; - char modifier; - bool have_hash; - bool have_num; - squeaker_note_t note; - - /* Play rest at end of melody. */ - if (! *str) - { - squeaker_rest_play (squeaker); - return str; - } - - cmd = *str++; - - have_hash = *str == '#'; - if (have_hash) - str++; - - modifier = 0; - if (*str == '+' || *str == '-') - modifier = *str++; - - have_num = 0; - num = 0; - while (*str >= '0' && *str <= '9') - { - have_num = 1; - num = num * 10 + *str++ - '0'; - } - - switch (cmd) - { - /* Repeat sequence from start. */ - case ':': - str = squeaker->start; - continue; - - /* Define start of loop. */ - case '<': - /* We could implement a small stack to allow nested - loops. */ - squeaker->loop_start = str; - squeaker->loop_count = 0; - continue; - - /* Loop. */ - case '>': - squeaker->loop_count++; - if (!num) - num = 2; - - if (squeaker->loop_count < num) - { - /* Jump to start of loop. If no start of loop symbol, - jump to start. */ - str = squeaker->loop_start; - if (!str) - str = squeaker->start; - } - continue; - - /* Alternate endings. */ - case '[': - if (squeaker->loop_count == num - 1) - continue; - - /* Skip to next alternate ending, the end of loop, or end of - melody. */ - while (*str && *str != '[' && *str != '>') - str++; - continue; - - /* Play rest. */ - case ' ': - squeaker_rest_play (squeaker); - return str; - break; - - case '*': - if (num) - squeaker_note_fraction_set (squeaker, num); - continue; - - case '@': - if (num) - squeaker_speed_set (squeaker, num); - continue; - - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - note = squeaker_char_to_note (cmd); - - if (have_hash) - note++; - - if (have_num) - squeaker->octave = num; - - if (modifier == '+') - note += SQUEAKER_SCALE_SIZE; - - if (modifier == '-') - note -= SQUEAKER_SCALE_SIZE; - - /* Convert note to MIDI note number. */ - note += (squeaker->octave + 1) * SQUEAKER_SCALE_SIZE; - - squeaker_note_play (squeaker, note); - return str; - break; - - /* Continue with previous note. */ - case '/': - default: - return str; - break; - } - } - return str; -} - - -void -squeaker_play (squeaker_t squeaker, const char *str) -{ - squeaker->cur = squeaker->start = str; - squeaker->loop_start = 0; - squeaker->loop_count = 0; - squeaker->octave = SQUEAKER_OCTAVE_DEFAULT; - squeaker_note_fraction_set (squeaker, 4); -} - - -/* Set (base) speed in beats per minute (BPM). */ -void -squeaker_speed_set (squeaker_t squeaker, squeaker_speed_t speed) -{ - squeaker->speed = speed; - squeaker_ticker_set (squeaker); -} - - -/* Set volume as percentage of maximum. */ -void -squeaker_volume_set (squeaker_t squeaker, squeaker_volume_t volume) -{ - squeaker->volume = volume; -} - - -int8_t -squeaker_update (squeaker_t squeaker) -{ - /* Rather than a 16 bit ticker it is faster to use - an 8-bit prescaler and an 8-bit ticker. */ - - squeaker->prescaler++; - if (! squeaker->prescaler) - { - if (TICKER_UPDATE (&squeaker->ticker)) - { - if (squeaker->cur) - squeaker->cur = squeaker_scan (squeaker, squeaker->cur); - } - - /* We could halve the note duty after some interval to - simulate note decay. The decay interval could be related - to the desired sustain. This approach is a bit brutal - especially when the duty is small. */ - - if (squeaker->note_holdoff) - squeaker->note_holdoff--; - } - - if (++squeaker->note_clock >= squeaker->note_period) - squeaker->note_clock = 0; - - return squeaker->note_clock < squeaker->note_duty - && ! squeaker->note_holdoff; -} - - -squeaker_t -squeaker_init (squeaker_obj_t *squeaker, - uint16_t poll_rate, - squeaker_scale_t *scale_table) -{ - squeaker->poll_rate = poll_rate; - squeaker->scale_table = scale_table; - squeaker->note_period = 0; - squeaker->note_duty = 0; - squeaker->volume = 127; - squeaker->prescaler = 0; - squeaker->holdoff = squeaker->poll_rate - / (uint16_t)(SQUEAKER_PRESCALER / SQUEAKER_HOLDOFF_TIME); - - squeaker_play (squeaker, 0); - squeaker_speed_set (squeaker, SQUEAKER_SPEED_DEFAULT); - return squeaker; -} diff --git a/extra/squeaker.h b/extra/squeaker.h deleted file mode 100644 index bcb75a1..0000000 --- a/extra/squeaker.h +++ /dev/null @@ -1,123 +0,0 @@ -/** @file squeaker.h - @author M. P. Hayes, UCECE - @date 14 April 2007 - @brief Play simple tunes with PWM. -*/ -#ifndef SQUEAKER_H -#define SQUEAKER_H - -#include "system.h" -#include "ticker.h" - -typedef uint8_t squeaker_speed_t; -typedef uint8_t squeaker_scale_t; -typedef uint8_t squeaker_note_t; -typedef uint8_t squeaker_duration_t; -typedef uint8_t squeaker_period_t; -typedef uint8_t squeaker_volume_t; - - -enum {SQUEAKER_OCTAVE_DEFAULT = 4}; -enum {SQUEAKER_SPEED_DEFAULT = 200}; - - -/* Could calculate scale divisors at run time. 2^(1/2) is approx - 1.0594631. A reasonable rational approximation is 267/252 = - 1.0595238. Let's save memory and provide a macro to compute the - divisors. */ - -#define SQUEAKER_DIVISOR(POLL_RATE, FREQ) (POLL_RATE / FREQ + 0.5) - - -#if 0 -enum {SQUEAKER_NOTE_MIN = 60}; -/* Define divisors for chromatic scale C4 -> C5. For better accuracy - this should be defined for the lowest frequency scale, however, - this may need 16 bits per note. */ -#define SQUEAKER_SCALE_TABLE(POLL_RATE) \ - {SQUEAKER_DIVISOR (POLL_RATE, 261.6256), \ - SQUEAKER_DIVISOR (POLL_RATE, 277.1826), \ - SQUEAKER_DIVISOR (POLL_RATE, 293.6648), \ - SQUEAKER_DIVISOR (POLL_RATE, 311.1270), \ - SQUEAKER_DIVISOR (POLL_RATE, 329.6276), \ - SQUEAKER_DIVISOR (POLL_RATE, 349.2282), \ - SQUEAKER_DIVISOR (POLL_RATE, 369.9944), \ - SQUEAKER_DIVISOR (POLL_RATE, 391.9954), \ - SQUEAKER_DIVISOR (POLL_RATE, 415.3047), \ - SQUEAKER_DIVISOR (POLL_RATE, 440.0000), \ - SQUEAKER_DIVISOR (POLL_RATE, 466.1638), \ - SQUEAKER_DIVISOR (POLL_RATE, 493.8833)} -#else -enum {SQUEAKER_NOTE_MIN = 40}; -/* Define divisors for chromatic scale E2 -> D#3. For better accuracy - this should be defined for the lowest frequency scale, however, - this may need 16 bits per note. */ -#define SQUEAKER_SCALE_TABLE(POLL_RATE) \ - {SQUEAKER_DIVISOR (POLL_RATE, 82.41), \ - SQUEAKER_DIVISOR (POLL_RATE, 87.31), \ - SQUEAKER_DIVISOR (POLL_RATE, 92.50), \ - SQUEAKER_DIVISOR (POLL_RATE, 98.00), \ - SQUEAKER_DIVISOR (POLL_RATE, 103.83), \ - SQUEAKER_DIVISOR (POLL_RATE, 110.0), \ - SQUEAKER_DIVISOR (POLL_RATE, 116.54), \ - SQUEAKER_DIVISOR (POLL_RATE, 123.47), \ - SQUEAKER_DIVISOR (POLL_RATE, 130.81), \ - SQUEAKER_DIVISOR (POLL_RATE, 138.59), \ - SQUEAKER_DIVISOR (POLL_RATE, 146.83), \ - SQUEAKER_DIVISOR (POLL_RATE, 155.56)} -#endif - -typedef struct -{ - uint8_t note_clock; - uint8_t note_period; - uint8_t note_duty; - uint8_t note_holdoff; - /* Pointer to start of string. */ - const char *start; - /* Pointer to current position in string. */ - const char *cur; - uint8_t holdoff; - uint16_t poll_rate; - const char *loop_start; - int8_t loop_count; - uint8_t prescaler; - uint8_t note_fraction; - squeaker_speed_t speed; - squeaker_volume_t volume; - ticker8_t ticker; - squeaker_scale_t *scale_table; - uint8_t octave; -} squeaker_private_t; - - -typedef squeaker_private_t squeaker_obj_t; -typedef squeaker_obj_t *squeaker_t; - - -/* The scale table is usually defined with: - - static squeaker_scale_t scale_table[] = SQUEAKER_SCALE_TABLE (LOOP_POLL_RATE); -*/ - - -extern squeaker_t -squeaker_init (squeaker_obj_t *dev, - uint16_t poll_rate, - squeaker_scale_t *scale_table); - -extern void -squeaker_play (squeaker_t squeaker, const char *str); - -extern int8_t -squeaker_update (squeaker_t squeaker); - -/* Set (base) speed in beats per minute (BPM). */ -extern void -squeaker_speed_set (squeaker_t squeaker, squeaker_speed_t speed); - -/* Set volume as percentage of maximum. */ -extern void -squeaker_volume_set (squeaker_t squeaker, squeaker_volume_t volume); - -#endif