diff --git a/apps/README b/apps/README index 83b8ab5..a9ef18b 100644 --- a/apps/README +++ b/apps/README @@ -1,7 +1,10 @@ This directory contains a number of test applications contained in -their own sub-directories. Within each sub-directory are two -makefiles; one called Makefile and the other called Makefile.test. By -default when make is run it will read Makefile. +their own sub-directories. Each application has a numerical suffix. +As a rule, the larger the number the more difficult the program. + +Within each sub-directory are two makefiles; one called Makefile and +the other called Makefile.test. By default when make is run it will +read Makefile. make --- builds the application for the ATmega8 make program --- programs the application into the ATmega8 flash memory @@ -14,3 +17,8 @@ modules. This allows the application to be run and debugged on a PC. make -f Makefile.test --- builds the application for the PC make -f Makefile.test clean --- deletes the object and executable files + + +tone1 Play a continuous tone (if piezo tweeter connected) +tone2 Play a louder continuous tone (if piezo tweeter connected) by driving + PIO pins in anti-phase diff --git a/apps/bounce1/doc/Makefile b/apps/bounce1/doc/Makefile index 1ef0bf6..2671b1e 100644 --- a/apps/bounce1/doc/Makefile +++ b/apps/bounce1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for bounce1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/bounce2/doc/Makefile b/apps/bounce2/doc/Makefile index 6ed8824..8a31cdd 100644 --- a/apps/bounce2/doc/Makefile +++ b/apps/bounce2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for bounce2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/bounce3/doc/Makefile b/apps/bounce3/doc/Makefile index f0275e5..b357de1 100644 --- a/apps/bounce3/doc/Makefile +++ b/apps/bounce3/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for bounce3 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/bounce4/doc/Makefile b/apps/bounce4/doc/Makefile index 0c3b14f..5007946 100644 --- a/apps/bounce4/doc/Makefile +++ b/apps/bounce4/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for bounce4 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/bounce5/doc/Makefile b/apps/bounce5/doc/Makefile index 09d8eca..5435d98 100644 --- a/apps/bounce5/doc/Makefile +++ b/apps/bounce5/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for bounce5 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/chooser/doc/Makefile b/apps/chooser/doc/Makefile index 69407ba..486d010 100644 --- a/apps/chooser/doc/Makefile +++ b/apps/chooser/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for chooser docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/demo1/doc/Makefile b/apps/demo1/doc/Makefile index c374bd1..2e775fa 100644 --- a/apps/demo1/doc/Makefile +++ b/apps/demo1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for demo1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/demo2/doc/Makefile b/apps/demo2/doc/Makefile index a00deb0..9e8c90a 100644 --- a/apps/demo2/doc/Makefile +++ b/apps/demo2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for demo2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/fonttest1/doc/Makefile b/apps/fonttest1/doc/Makefile index 199184d..105786b 100644 --- a/apps/fonttest1/doc/Makefile +++ b/apps/fonttest1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for fonttest1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/hello1/doc/Makefile b/apps/hello1/doc/Makefile index 58d3bb9..5d8e6b0 100644 --- a/apps/hello1/doc/Makefile +++ b/apps/hello1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for hello1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/hello2/doc/Makefile b/apps/hello2/doc/Makefile index 2db1a94..43b79b8 100644 --- a/apps/hello2/doc/Makefile +++ b/apps/hello2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for hello2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/hello3/doc/Makefile b/apps/hello3/doc/Makefile index 54a6262..6302324 100644 --- a/apps/hello3/doc/Makefile +++ b/apps/hello3/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for hello3 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/hello4/doc/Makefile b/apps/hello4/doc/Makefile index fae5154..305dc37 100644 --- a/apps/hello4/doc/Makefile +++ b/apps/hello4/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for hello4 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/hello5/doc/Makefile b/apps/hello5/doc/Makefile index 12f7d00..7d9a182 100644 --- a/apps/hello5/doc/Makefile +++ b/apps/hello5/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for hello5 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_grab1/doc/Makefile b/apps/ir_grab1/doc/Makefile index 71d3c41..d5db9ab 100644 --- a/apps/ir_grab1/doc/Makefile +++ b/apps/ir_grab1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for ir_grab1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_grab2/doc/Makefile b/apps/ir_grab2/doc/Makefile index 93536d2..553c7ac 100644 --- a/apps/ir_grab2/doc/Makefile +++ b/apps/ir_grab2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for ir_grab2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_grab3/doc/Makefile b/apps/ir_grab3/doc/Makefile index b1266ac..ec30def 100644 --- a/apps/ir_grab3/doc/Makefile +++ b/apps/ir_grab3/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for ir_grab3 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_serial_test1/doc/Makefile b/apps/ir_serial_test1/doc/Makefile index 6be94cb..aa20c31 100644 --- a/apps/ir_serial_test1/doc/Makefile +++ b/apps/ir_serial_test1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for ir_serial_test1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_serial_test2/doc/Makefile b/apps/ir_serial_test2/doc/Makefile index 280b435..0e5f18c 100644 --- a/apps/ir_serial_test2/doc/Makefile +++ b/apps/ir_serial_test2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for ir_serial_test2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_serial_test3/doc/Makefile b/apps/ir_serial_test3/doc/Makefile index 06d3712..a15a31d 100644 --- a/apps/ir_serial_test3/doc/Makefile +++ b/apps/ir_serial_test3/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for ir_serial_test3 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_uart_test1/doc/Makefile b/apps/ir_uart_test1/doc/Makefile index c91c428..00afecd 100644 --- a/apps/ir_uart_test1/doc/Makefile +++ b/apps/ir_uart_test1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for ir_uart_test1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_uart_test2/doc/Makefile b/apps/ir_uart_test2/doc/Makefile index 7a02109..1e8c282 100644 --- a/apps/ir_uart_test2/doc/Makefile +++ b/apps/ir_uart_test2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for ir_uart_test2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_uart_test3/Makefile b/apps/ir_uart_test3/Makefile index ee6c8fc..7cdfc2e 100644 --- a/apps/ir_uart_test3/Makefile +++ b/apps/ir_uart_test3/Makefile @@ -16,7 +16,7 @@ all: ir_uart_test3.out # Compile: create object files from C source files. -ir_uart_test3.o: ir_uart_test3.c ../../drivers/avr/ir_uart.h ../../drivers/avr/system.h ../../drivers/display.h ../../drivers/navswitch.h ../../fonts/font5x7_1.h ../../utils/font.h ../../utils/pacer.h ../../utils/tinygl.h ../../utils/uint8toa.h +ir_uart_test3.o: ir_uart_test3.c ../../drivers/avr/ir_uart.h ../../drivers/avr/system.h ../../drivers/display.h ../../drivers/navswitch.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/pacer.h ../../utils/tinygl.h ../../utils/uint8toa.h $(CC) -c $(CFLAGS) $< -o $@ ir_uart.o: ../../drivers/avr/ir_uart.c ../../drivers/avr/ir_uart.h ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/avr/timer0.h ../../drivers/avr/usart1.h diff --git a/apps/ir_uart_test3/doc/Makefile b/apps/ir_uart_test3/doc/Makefile index 3a7ace3..195c459 100644 --- a/apps/ir_uart_test3/doc/Makefile +++ b/apps/ir_uart_test3/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for ir_uart_test3 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/ir_uart_test3/doc/callgraph.d b/apps/ir_uart_test3/doc/callgraph.d index d6c1059..2fcb1fe 100644 --- a/apps/ir_uart_test3/doc/callgraph.d +++ b/apps/ir_uart_test3/doc/callgraph.d @@ -22,6 +22,8 @@ tinygl_font_set@tinygl.c: tinygl_text_mode_set@tinygl.c: +tinygl_text_dir_set@tinygl.c: + navswitch_init@navswitch.c: timer0_mode_set@timer0.c: @@ -52,11 +54,13 @@ timer_init@timer.c: pacer_init@pacer.c: timer_init +uint8toa@uint8toa.c: + tinygl_draw_message@tinygl.c: strncpy strlen tinygl_text@tinygl.c: tinygl_draw_message -show_char@ir_uart_test3.c: tinygl_text +show_byte@ir_uart_test3.c: uint8toa tinygl_text timer_get@timer.c: @@ -90,6 +94,14 @@ display_update@display.c: ledmat_display_column tinygl_update@tinygl.c: tinygl_text_advance display_update +usart1_read_ready_p@usart1.c: + +ir_uart_read_ready_p@ir_uart.c: usart1_read_ready_p + +usart1_getc@usart1.c: usart1_read_ready_p + +ir_uart_getc@ir_uart.c: usart1_getc + pio_config_get@pio.c: _delay_loop_1@navswitch.c: @@ -102,17 +114,9 @@ navswitch_push_event_p@navswitch.c: usart1_write_ready_p@usart1.c: -usart1_putc@usart1.c: usart1_putc usart1_write_ready_p +usart1_putc@usart1.c: usart1_write_ready_p ir_uart_putc@ir_uart.c: usart1_putc -usart1_read_ready_p@usart1.c: - -ir_uart_read_ready_p@ir_uart.c: usart1_read_ready_p - -usart1_getc@usart1.c: usart1_read_ready_p - -ir_uart_getc@ir_uart.c: usart1_getc - -main@ir_uart_test3.c: system_init tinygl_init tinygl_font_set tinygl_text_speed_set tinygl_text_mode_set navswitch_init ir_uart_init pacer_init show_char pacer_wait tinygl_update navswitch_update navswitch_push_event_p ir_uart_putc navswitch_push_event_p ir_uart_putc ir_uart_read_ready_p ir_uart_getc show_char +main@ir_uart_test3.c: system_init tinygl_init tinygl_font_set tinygl_text_speed_set tinygl_text_mode_set tinygl_text_dir_set navswitch_init ir_uart_init pacer_init show_byte pacer_wait tinygl_update ir_uart_read_ready_p ir_uart_getc show_byte navswitch_update navswitch_push_event_p ir_uart_putc ir_uart_getc navswitch_push_event_p ir_uart_putc ir_uart_getc diff --git a/apps/ir_uart_test3/doc/files.d b/apps/ir_uart_test3/doc/files.d index d0c5207..0680612 100644 --- a/apps/ir_uart_test3/doc/files.d +++ b/apps/ir_uart_test3/doc/files.d @@ -14,32 +14,32 @@ ../../drivers/navswitch.h: -../../drivers/avr/delay.h: - -../../drivers/navswitch.c: ../../drivers/navswitch.h ../../drivers/avr/delay.h ../../drivers/avr/pio.h - -../../drivers/navswitch.o: ../../drivers/navswitch.c - ../../drivers/display.h: ../../utils/font.h: ../../utils/tinygl.h: ../../drivers/display.h ../../utils/font.h -../../utils/tinygl.c: ../../utils/tinygl.h ../../drivers/display.h ../../utils/font.h - -../../utils/tinygl.o: ../../utils/tinygl.c - ../../utils/pacer.h: +../../utils/uint8toa.h: + ../../drivers/avr/ir_uart.h: -../../fonts/font5x7_1.h: ../../utils/font.h +../../fonts/font3x5_1.h: ../../utils/font.h -ir_uart_test3.c: ../../drivers/navswitch.h ../../utils/tinygl.h ../../utils/pacer.h ../../drivers/avr/ir_uart.h ../../fonts/font5x7_1.h +ir_uart_test3.c: ../../drivers/navswitch.h ../../utils/tinygl.h ../../utils/pacer.h ../../utils/uint8toa.h ../../drivers/avr/ir_uart.h ../../fonts/font3x5_1.h ir_uart_test3.o: ir_uart_test3.c +../../utils/uint8toa.c: + +../../utils/uint8toa.o: ../../utils/uint8toa.c + +../../utils/tinygl.c: ../../utils/tinygl.h ../../drivers/display.h ../../utils/font.h + +../../utils/tinygl.o: ../../utils/tinygl.c + ../../utils/font.c: ../../utils/font.h ../../utils/font.o: ../../utils/font.c @@ -84,5 +84,11 @@ ir_uart_test3.o: ir_uart_test3.c ../../drivers/avr/usart1.o: ../../drivers/avr/usart1.c -ir_uart_test3.out: ../../drivers/avr/timer.o ../../drivers/ledmat.o ../../drivers/navswitch.o ../../utils/tinygl.o ir_uart_test3.o ../../utils/font.o ../../drivers/avr/pio.o ../../utils/pacer.o ../../drivers/display.o ../../drivers/avr/system.o ../../drivers/avr/prescale.o ../../drivers/avr/ir_uart.o ../../drivers/avr/timer0.o ../../drivers/avr/usart1.o +../../drivers/avr/delay.h: + +../../drivers/navswitch.c: ../../drivers/navswitch.h ../../drivers/avr/delay.h ../../drivers/avr/pio.h + +../../drivers/navswitch.o: ../../drivers/navswitch.c + +ir_uart_test3.out: ../../drivers/avr/timer.o ../../drivers/ledmat.o ir_uart_test3.o ../../utils/uint8toa.o ../../utils/tinygl.o ../../utils/font.o ../../drivers/avr/pio.o ../../utils/pacer.o ../../drivers/display.o ../../drivers/avr/system.o ../../drivers/avr/prescale.o ../../drivers/avr/ir_uart.o ../../drivers/avr/timer0.o ../../drivers/avr/usart1.o ../../drivers/navswitch.o diff --git a/apps/ir_uart_test3/doc/modules.d b/apps/ir_uart_test3/doc/modules.d index e3e2dad..efceb83 100644 --- a/apps/ir_uart_test3/doc/modules.d +++ b/apps/ir_uart_test3/doc/modules.d @@ -14,6 +14,8 @@ timer: pacer: timer +uint8toa: + usart1: prescale: @@ -22,5 +24,5 @@ timer0: prescale ir_uart: usart1 timer0 pio -ir_uart_test3: navswitch tinygl pacer ir_uart +ir_uart_test3: navswitch tinygl pacer uint8toa ir_uart diff --git a/apps/ir_uart_test3/ir_uart_test3.c b/apps/ir_uart_test3/ir_uart_test3.c index a98512f..a4a8a1b 100644 --- a/apps/ir_uart_test3/ir_uart_test3.c +++ b/apps/ir_uart_test3/ir_uart_test3.c @@ -18,6 +18,8 @@ /* Define polling rate in Hz. */ #define LOOP_RATE 300 +#define SWITCH_POLL_RATE 20 + /* Define text update rate (characters per 10 s). */ #define MESSAGE_RATE 10 @@ -61,8 +63,20 @@ int main (void) tinygl_update (); + if (ir_uart_read_ready_p ()) + { + uint8_t data; + + data = ir_uart_getc (); + + /* Note, if messages come in too fast, say due to IR + inteference from fluorescent lights, then the display + will not keep up and will appear to freeze. */ + show_byte (data); + } + count++; - if (count > 20) + if (count > LOOP_RATE / SWITCH_POLL_RATE) { count = 0; @@ -82,18 +96,6 @@ int main (void) ir_uart_getc (); } } - - if (ir_uart_read_ready_p ()) - { - uint8_t data; - - data = ir_uart_getc (); - - /* Note, if messages come in too fast, say due to IR - inteference from fluorescent lights, then the display - will not keep up and will appear to freeze. */ - show_byte (data); - } } return 0; diff --git a/apps/led0/doc/Makefile b/apps/led0/doc/Makefile index f8f705c..0a25ed1 100644 --- a/apps/led0/doc/Makefile +++ b/apps/led0/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for led0 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/led1/doc/Makefile b/apps/led1/doc/Makefile index 4dd5b65..06debde 100644 --- a/apps/led1/doc/Makefile +++ b/apps/led1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for led1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/led2/doc/Makefile b/apps/led2/doc/Makefile index bba4a82..086e128 100644 --- a/apps/led2/doc/Makefile +++ b/apps/led2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for led2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/led3/doc/Makefile b/apps/led3/doc/Makefile index 66031fb..6e6c739 100644 --- a/apps/led3/doc/Makefile +++ b/apps/led3/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for led3 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/led4/doc/Makefile b/apps/led4/doc/Makefile index 659c728..bd29b28 100644 --- a/apps/led4/doc/Makefile +++ b/apps/led4/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for led4 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/led5/doc/Makefile b/apps/led5/doc/Makefile index 56cd6ec..c93d18c 100644 --- a/apps/led5/doc/Makefile +++ b/apps/led5/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for led5 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/pio1/doc/Makefile b/apps/pio1/doc/Makefile index 0c0fd80..4fe5ab1 100644 --- a/apps/pio1/doc/Makefile +++ b/apps/pio1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for pio1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/pio2/doc/Makefile b/apps/pio2/doc/Makefile index 0394687..408099f 100644 --- a/apps/pio2/doc/Makefile +++ b/apps/pio2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for pio2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/pio2/pio2.c b/apps/pio2/pio2.c index 324efb0..17d8352 100644 --- a/apps/pio2/pio2.c +++ b/apps/pio2/pio2.c @@ -16,6 +16,7 @@ int main (void) while (1) { + count++; if (count > 10000) { pio_output_toggle (LED1_PIO); diff --git a/apps/pio3/doc/Makefile b/apps/pio3/doc/Makefile index b7ba084..8352b20 100644 --- a/apps/pio3/doc/Makefile +++ b/apps/pio3/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for pio3 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/scribble1/Makefile.test b/apps/scribble1/Makefile.test index 5a4ce9d..7838223 100644 --- a/apps/scribble1/Makefile.test +++ b/apps/scribble1/Makefile.test @@ -4,7 +4,7 @@ # Descr: Makefile for scribble1 CC = gcc -CFLAGS = -Wall -Wstrict-prototypes -Wextra -g -I../../drivers/test -I../../drivers -I../../fonts -I../../utils +CFLAGS = -Wall -Wstrict-prototypes -Wextra -g -I../../drivers/test -I../../drivers -I../../utils DEL = rm @@ -14,7 +14,7 @@ all: scribble1 # Compile: create object files from C source files. -scribble1-test.o: scribble1.c ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../drivers/test/system.h ../../fonts/font5x7_1.h ../../utils/font.h ../../utils/pacer.h ../../utils/tinygl.h +scribble1-test.o: scribble1.c ../../drivers/button.h ../../drivers/display.h ../../drivers/led.h ../../drivers/navswitch.h ../../drivers/test/system.h ../../utils/font.h ../../utils/pacer.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 diff --git a/apps/scribble1/doc/Makefile b/apps/scribble1/doc/Makefile index bed6b5f..02ce72e 100644 --- a/apps/scribble1/doc/Makefile +++ b/apps/scribble1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for scribble1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/snake1/doc/Makefile b/apps/snake1/doc/Makefile index 7e435a6..f474170 100644 --- a/apps/snake1/doc/Makefile +++ b/apps/snake1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for snake1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/space10/doc/Makefile b/apps/space10/doc/Makefile index 8426673..d34300b 100644 --- a/apps/space10/doc/Makefile +++ b/apps/space10/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for space10 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/space10/space10.c b/apps/space10/space10.c index 944b78a..42154f7 100644 --- a/apps/space10/space10.c +++ b/apps/space10/space10.c @@ -9,7 +9,6 @@ #include #include "system.h" -#include "display.h" #include "tinygl.h" #include "pacer.h" #include "ir_serial.h" diff --git a/apps/space11/doc/Makefile b/apps/space11/doc/Makefile index 841c4c3..2c393bc 100644 --- a/apps/space11/doc/Makefile +++ b/apps/space11/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for space11 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/space11/space11.c b/apps/space11/space11.c index df0457c..43a3522 100644 --- a/apps/space11/space11.c +++ b/apps/space11/space11.c @@ -8,7 +8,6 @@ #include #include "system.h" -#include "display.h" #include "tinygl.h" #include "task.h" #include "navswitch.h" diff --git a/apps/space12/doc/Makefile b/apps/space12/doc/Makefile index 5613286..1291390 100644 --- a/apps/space12/doc/Makefile +++ b/apps/space12/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for space12 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/space12/space12.c b/apps/space12/space12.c index 067fd40..ed372d3 100644 --- a/apps/space12/space12.c +++ b/apps/space12/space12.c @@ -1,14 +1,14 @@ /** @file space12.c @author M. P. Hayes, UCECE @date 20 April 2007 - @brief A simple space invaders game with different difficulty levels. + @brief A simple space invaders game with different difficulty levels + and sound effects. - @defgroup space12 A simple space invaders game. + @defgroup space12 A simple space invaders game with sound effects. */ #include #include "system.h" -#include "display.h" #include "tinygl.h" #include "task.h" #include "navswitch.h" @@ -39,8 +39,12 @@ enum {GAME_OVER_PERIOD = 2}; enum {BUTTON_HOLD_PERIOD = 1}; -/* Connect piezo tweeter to outermost pins of UCFK4 P1 connector. */ -#define PIEZO_PIO PIO_DEFINE (PORT_D, 6) +/* Connect piezo tweeter to first and third pin of UCFK4 P1 connector + for push-pull operation. For single-ended drive (with reduced + volume) connect the other piezo connection to ground or Vcc and do + not define PIEZO2_PIO. */ +#define PIEZO1_PIO PIO_DEFINE (PORT_D, 4) +#define PIEZO2_PIO PIO_DEFINE (PORT_D, 6) /** Define flasher modes. */ @@ -100,13 +104,24 @@ static void tweeter_task_init (void) { tweeter = tweeter_init (&tweeter_info, TWEETER_TASK_RATE, scale_table); - pio_config_set (PIEZO_PIO, PIO_OUTPUT_LOW); + pio_config_set (PIEZO1_PIO, PIO_OUTPUT_LOW); +#ifdef PIEZO2_PIO + pio_config_set (PIEZO2_PIO, PIO_OUTPUT_LOW); +#endif } static void tweeter_task (__unused__ void *data) { - pio_output_set (PIEZO_PIO, tweeter_update (tweeter)); + bool state; + + state = tweeter_update (tweeter); + + pio_output_set (PIEZO1_PIO, state); +#ifdef PIEZO2_PIO + /* Push-pull piezo tweeter drive. */ + pio_output_set (PIEZO2_PIO, !state); +#endif } diff --git a/apps/space9/doc/Makefile b/apps/space9/doc/Makefile index 3efd657..088e132 100644 --- a/apps/space9/doc/Makefile +++ b/apps/space9/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for space9 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/space9/space9.c b/apps/space9/space9.c index b4ea453..e80fc4d 100644 --- a/apps/space9/space9.c +++ b/apps/space9/space9.c @@ -8,7 +8,6 @@ #include #include "system.h" -#include "display.h" #include "tinygl.h" #include "pacer.h" #include "navswitch.h" diff --git a/apps/spacey_remote1/doc/Makefile b/apps/spacey_remote1/doc/Makefile index a226d4c..629118d 100644 --- a/apps/spacey_remote1/doc/Makefile +++ b/apps/spacey_remote1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for spacey_remote1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/squeak0/doc/Makefile b/apps/squeak0/doc/Makefile index 080d1a7..1e8f3f6 100644 --- a/apps/squeak0/doc/Makefile +++ b/apps/squeak0/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for squeak0 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/squeak1/doc/Makefile b/apps/squeak1/doc/Makefile index 7713459..2fd302c 100644 --- a/apps/squeak1/doc/Makefile +++ b/apps/squeak1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for squeak1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/squeak2/doc/Makefile b/apps/squeak2/doc/Makefile index c0396aa..0e53782 100644 --- a/apps/squeak2/doc/Makefile +++ b/apps/squeak2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for squeak2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/squeak3/doc/Makefile b/apps/squeak3/doc/Makefile index f6c8890..2370f24 100644 --- a/apps/squeak3/doc/Makefile +++ b/apps/squeak3/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for squeak3 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/squeak4/doc/Makefile b/apps/squeak4/doc/Makefile index 69ab29d..eb29a6d 100644 --- a/apps/squeak4/doc/Makefile +++ b/apps/squeak4/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for squeak4 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/steer1/doc/Makefile b/apps/steer1/doc/Makefile index f19d386..7f4c196 100644 --- a/apps/steer1/doc/Makefile +++ b/apps/steer1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for steer1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/stopwatch1/doc/Makefile b/apps/stopwatch1/doc/Makefile index 21270fa..40d35a5 100644 --- a/apps/stopwatch1/doc/Makefile +++ b/apps/stopwatch1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for stopwatch1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/task1/doc/Makefile b/apps/task1/doc/Makefile index ff2905f..e9cd216 100644 --- a/apps/task1/doc/Makefile +++ b/apps/task1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for task1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/task2/doc/Makefile b/apps/task2/doc/Makefile index 7fb17d8..0f1ccc6 100644 --- a/apps/task2/doc/Makefile +++ b/apps/task2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for task2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/tdmdemo1/doc/Makefile b/apps/tdmdemo1/doc/Makefile index f18ff16..335f88f 100644 --- a/apps/tdmdemo1/doc/Makefile +++ b/apps/tdmdemo1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for tdmdemo1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/tdmdemo2/doc/Makefile b/apps/tdmdemo2/doc/Makefile index d40937c..cb70b0e 100644 --- a/apps/tdmdemo2/doc/Makefile +++ b/apps/tdmdemo2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for tdmdemo2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/updown1/doc/Makefile b/apps/updown1/doc/Makefile index a672f9b..a29ff1f 100644 --- a/apps/updown1/doc/Makefile +++ b/apps/updown1/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for updown1 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/updown2/doc/Makefile b/apps/updown2/doc/Makefile index 0f72828..1dcf896 100644 --- a/apps/updown2/doc/Makefile +++ b/apps/updown2/doc/Makefile @@ -3,6 +3,9 @@ # Date: 11 Sep 2010 # Descr: Makefile for updown2 docs +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + DEL = rm all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf @@ -11,7 +14,7 @@ file_dependencies.pdf: files.d ../../../etc/graphdeps.py $< --out $@ module_dependencies.pdf: modules.d - ../../../etc/graphdeps.py $< --modules --out $@ + ../../../etc/graphdeps.py $< --modules --rotate --out $@ makefile_dependencies.pdf: ../Makefile ../../../etc/graphdeps.py $< --out $@ diff --git a/apps/voltmeter1/Makefile b/apps/voltmeter1/Makefile new file mode 100644 index 0000000..7b8f958 --- /dev/null +++ b/apps/voltmeter1/Makefile @@ -0,0 +1,70 @@ +# File: Makefile +# Author: M. P. Hayes, UCECE +# Date: 12 Sep 2010 +# Descr: Makefile for voltmeter1 + +# Definitions. +CC = avr-gcc +CFLAGS = -mmcu=atmega32u2 -Os -Wall -Wstrict-prototypes -Wextra -g -I. -I../../drivers -I../../fonts -I../../drivers/avr -I../../utils +OBJCOPY = avr-objcopy +SIZE = avr-size +DEL = rm + + +# Default target. +all: voltmeter1.out + + +# Compile: create object files from C source files. +voltmeter1.o: voltmeter1.c ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../drivers/display.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h adc.h + $(CC) -c $(CFLAGS) $< -o $@ + +adc.o: adc.c ../../drivers/avr/delay.h ../../drivers/avr/pio.h ../../drivers/avr/system.h adc.h + $(CC) -c $(CFLAGS) $< -o $@ + +pio.o: ../../drivers/avr/pio.c ../../drivers/avr/pio.h ../../drivers/avr/system.h + $(CC) -c $(CFLAGS) $< -o $@ + +system.o: ../../drivers/avr/system.c ../../drivers/avr/system.h + $(CC) -c $(CFLAGS) $< -o $@ + +timer.o: ../../drivers/avr/timer.c ../../drivers/avr/system.h ../../drivers/avr/timer.h + $(CC) -c $(CFLAGS) $< -o $@ + +display.o: ../../drivers/display.c ../../drivers/avr/system.h ../../drivers/display.h ../../drivers/ledmat.h + $(CC) -c $(CFLAGS) $< -o $@ + +ledmat.o: ../../drivers/ledmat.c ../../drivers/avr/pio.h ../../drivers/avr/system.h ../../drivers/ledmat.h + $(CC) -c $(CFLAGS) $< -o $@ + +font.o: ../../utils/font.c ../../drivers/avr/system.h ../../utils/font.h + $(CC) -c $(CFLAGS) $< -o $@ + +task.o: ../../utils/task.c ../../drivers/avr/system.h ../../drivers/avr/timer.h ../../utils/task.h + $(CC) -c $(CFLAGS) $< -o $@ + +tinygl.o: ../../utils/tinygl.c ../../drivers/avr/system.h ../../drivers/display.h ../../utils/font.h ../../utils/tinygl.h + $(CC) -c $(CFLAGS) $< -o $@ + + + + +# Link: create output file (executable) from object files. +voltmeter1.out: voltmeter1.o adc.o pio.o system.o timer.o display.o ledmat.o font.o task.o tinygl.o + $(CC) $(CFLAGS) $^ -o $@ -lm + $(SIZE) $@ + + +# Target: clean project. +.PHONY: clean +clean: + -$(DEL) *.o *.out *.hex + + +# Target: program project. +.PHONY: program +program: voltmeter1.out + $(OBJCOPY) -O ihex voltmeter1.out voltmeter1.hex + dfu-programmer atmega32u2 erase; dfu-programmer atmega32u2 flash voltmeter1.hex; dfu-programmer atmega32u2 start + + diff --git a/apps/voltmeter1/Makefile.test b/apps/voltmeter1/Makefile.test new file mode 100644 index 0000000..7ee0e4d --- /dev/null +++ b/apps/voltmeter1/Makefile.test @@ -0,0 +1,64 @@ +# File: Makefile +# Author: M. P. Hayes, UCECE +# Date: 11 Sep 2010 +# Descr: Makefile for voltmeter1 + +CC = gcc +CFLAGS = -Wall -Wstrict-prototypes -Wextra -g -I. -I../../drivers/test -I../../drivers -I../../fonts -I../../utils + +DEL = rm + + +# Default target. +all: voltmeter1 + + +# Compile: create object files from C source files. +voltmeter1-test.o: voltmeter1.c ../../drivers/display.h ../../drivers/test/system.h ../../drivers/test/timer.h ../../fonts/font3x5_1.h ../../utils/font.h ../../utils/task.h ../../utils/tinygl.h adc.h + $(CC) -c $(CFLAGS) $< -o $@ + +adc-test.o: adc.c ../../drivers/test/avrtest.h ../../drivers/test/delay.h ../../drivers/test/pio.h ../../drivers/test/system.h adc.h + $(CC) -c $(CFLAGS) $< -o $@ + +display-test.o: ../../drivers/display.c ../../drivers/display.h ../../drivers/ledmat.h ../../drivers/test/system.h + $(CC) -c $(CFLAGS) $< -o $@ + +ledmat-test.o: ../../drivers/ledmat.c ../../drivers/ledmat.h ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h + $(CC) -c $(CFLAGS) $< -o $@ + +mgetkey-test.o: ../../drivers/test/mgetkey.c ../../drivers/test/mgetkey.h + $(CC) -c $(CFLAGS) $< -o $@ + +pio-test.o: ../../drivers/test/pio.c ../../drivers/test/avrtest.h ../../drivers/test/pio.h ../../drivers/test/system.h + $(CC) -c $(CFLAGS) $< -o $@ + +system-test.o: ../../drivers/test/system.c ../../drivers/test/avrtest.h ../../drivers/test/mgetkey.h ../../drivers/test/pio.h ../../drivers/test/system.h + $(CC) -c $(CFLAGS) $< -o $@ + +timer-test.o: ../../drivers/test/timer.c ../../drivers/test/system.h ../../drivers/test/timer.h + $(CC) -c $(CFLAGS) $< -o $@ + +font-test.o: ../../utils/font.c ../../drivers/test/system.h ../../utils/font.h + $(CC) -c $(CFLAGS) $< -o $@ + +task-test.o: ../../utils/task.c ../../drivers/test/system.h ../../drivers/test/timer.h ../../utils/task.h + $(CC) -c $(CFLAGS) $< -o $@ + +tinygl-test.o: ../../utils/tinygl.c ../../drivers/display.h ../../drivers/test/system.h ../../utils/font.h ../../utils/tinygl.h + $(CC) -c $(CFLAGS) $< -o $@ + + + + +# Link: create executable file from object files. +voltmeter1: voltmeter1-test.o adc-test.o display-test.o ledmat-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o font-test.o task-test.o tinygl-test.o + $(CC) $(CFLAGS) $^ -o $@ -lrt + + +# Clean: delete derived files. +.PHONY: clean +clean: + -$(DEL) voltmeter1 voltmeter1-test.o adc-test.o display-test.o ledmat-test.o mgetkey-test.o pio-test.o system-test.o timer-test.o font-test.o task-test.o tinygl-test.o + + + diff --git a/apps/voltmeter1/adc.c b/apps/voltmeter1/adc.c new file mode 100644 index 0000000..0a81606 --- /dev/null +++ b/apps/voltmeter1/adc.c @@ -0,0 +1,104 @@ +#include "avr/io.h" +#include "pio.h" +#include "delay.h" +#include "adc.h" + +/** + This requires a capacitor connected from AIN0 (P1-3) to ground + (P1-1) and a resistor connected from AIN0 (P1-3) to PD5 (P1-7). + The unknown input voltage is applied to AIN3 (P1-6). + + It operates by applying a fixed voltage from PD5 (5 V, assuming the + UCFK4 is powered from USB) to the capacitor and timing how long it + takes for the capacitor voltage to exceed the unknown voltage using + the comparator. + + Here's the typical usage for two channels.: + + adc_init (); + adc_enable (ADC_CHANNEL1); + adc_enable (ADC_CHANNEL2); + + adc_measure (ADC_CHANNEL1); + + wait until capacitor discharged + + adc_measure (ADC_CHANNEL2); + + Note adc_measure blocks until the voltage on the capacitor exceeds + the voltage being measured. adc_measure cannot be called again + until the capacitor is discharged. This could be greatly sped up + by using another PIO directly connected to the capacitor. Better + still, since PD1 shares the same pin as AIN0, it can be configured + as a low output to more rapidly discharge the capacitor. + + From the IBIS file it appears that a PIO can sink/source 60 mA + (typ) at 25 deg. C. The datasheet says that the maximum PIO DC + current is 40 mA. + + */ + +#ifndef ADC_CHARGE_PIO +#define ADC_CHARGE_PIO PIO_DEFINE(PORT_D, 5) +#endif + +#ifndef ADC_CAPACITANCE +#define ADC_CAPACITANCE 4.7e-9 +#endif + +#ifndef ADC_RESISTANCE +#define ADC_RESISTANCE 37e3 +#endif + +#define ADC_TIME_CONSTANT_US (ADC_CAPACITANCE * ADC_RESISTANCE * 1e6) + +/* This is not defined in io32u2.h */ +#ifndef ACMUX +#define ACMUX _SFR_MEM8(0x7D) +#endif + +void adc_init(void) +{ + pio_config_set(ADC_CHARGE_PIO, PIO_OUTPUT_LOW); + + /* Disable digital input for AIN0. */ + DIDR1 |= BIT(0); + + /* By default the analog comparator is enabled but let's enable it. */ + ACSR &= BIT(7); +} + + +void adc_enable(uint8_t adc_channel) +{ + /* Disable digital input for selected channel. */ + DIDR1 |= BIT(adc_channel); +} + + +void adc_disable(uint8_t adc_channel) +{ + /* Enable digital input for selected channel. */ + DIDR1 &= ~BIT(adc_channel); +} + + +uint8_t adc_measure(uint8_t adc_channel) +{ + uint8_t count; + + count = 0; + + /* Select desired channel. */ + ACMUX = adc_channel - 1; + + pio_output_high (ADC_CHARGE_PIO); + + while (! (ACSR & BIT(ACO))) + count++; + + pio_output_low (ADC_CHARGE_PIO); + + return count; +} + diff --git a/apps/voltmeter1/adc.h b/apps/voltmeter1/adc.h new file mode 100644 index 0000000..2c305c4 --- /dev/null +++ b/apps/voltmeter1/adc.h @@ -0,0 +1,17 @@ +#ifndef ADC_H +#define ADC_H + +#include "system.h" + +void adc_init(void); + +void adc_enable(uint8_t adc_channel); + +void adc_disable(uint8_t adc_channel); + +uint8_t adc_measure(uint8_t adc_channel); + + +#endif + + diff --git a/apps/voltmeter1/doc/Makefile b/apps/voltmeter1/doc/Makefile new file mode 100644 index 0000000..b925b49 --- /dev/null +++ b/apps/voltmeter1/doc/Makefile @@ -0,0 +1,45 @@ +# File: Makefile +# Author: M. P. Hayes, UCECE +# Date: 11 Sep 2010 +# Descr: Makefile for voltmeter1 docs + +# The scripts used to make the graphs require the program dot; this +# is part of the graphviz package. + +DEL = rm + +all: file_dependencies.pdf module_dependencies.pdf makefile_dependencies.pdf build_dependencies.pdf callgraph.pdf + +file_dependencies.pdf: files.d + ../../../etc/graphdeps.py $< --out $@ + +module_dependencies.pdf: modules.d + ../../../etc/graphdeps.py $< --modules --rotate --out $@ + +makefile_dependencies.pdf: ../Makefile + ../../../etc/graphdeps.py $< --out $@ + +build_dependencies.pdf: ../Makefile + ../../../etc/graphdeps.py $< --out $@ --showops + +callgraph.pdf: callgraph.d + ../../../etc/graphdeps.py --calls --modules $< --out $@ --showops + + +files.d: ../Makefile + (cd ..; ../../etc/makemake.py --relpath --files . . ../../drivers ../../drivers/avr ../../utils ../../extra --exclude system.h > doc/files.d) + + +modules.d: ../Makefile + (cd ..; ../../etc/makemake.py --relpath --modules . . ../../drivers ../../drivers/avr ../../utils ../../extra --exclude system > doc/modules.d) + + +callgraph.d: ../Makefile + (cd ..; ../../etc/makemake.py --cc="avr-gcc" --cflags="-Os -mmcu=atmega32u2" --relpath --calls . . ../../drivers ../../drivers/avr ../../utils ../../extra --exclude system.h > doc/callgraph.d) + + +# Clean: delete derived files. +.PHONY: clean +clean: + -$(DEL) *.d *.pdf + diff --git a/apps/voltmeter1/doc/README b/apps/voltmeter1/doc/README new file mode 100644 index 0000000..39a9712 --- /dev/null +++ b/apps/voltmeter1/doc/README @@ -0,0 +1,16 @@ +Running make in this directory will generate a number of PDF graphs. +In the callgraph, the arrows means "calls". In the dependency graphs, +the arrows means "requires" (or "depends upon"). + +callgraph.pdf This shows the callgraph, i.e., what functions each + function in the program calls. +module_dependencies.pdf This shows the dependencies between the modules. +file_dependencies.pdf This shows the dependencies between the files. +makefile_dependencies.pdf This shows the dependencies required by make when + building the program. +build_dependencies.pdf This is like makefile_dependencies.pdf but shows + the operations performed to generate the new file. + +callgraph.d This shows the callgraph in text format. +files.d This shows the file dependencies in text format. +modules.d This shows the module dependencies in text format. diff --git a/apps/voltmeter1/doc/build_dependencies.pdf b/apps/voltmeter1/doc/build_dependencies.pdf new file mode 100644 index 0000000..96f2857 Binary files /dev/null and b/apps/voltmeter1/doc/build_dependencies.pdf differ diff --git a/apps/voltmeter1/doc/callgraph.d b/apps/voltmeter1/doc/callgraph.d new file mode 100644 index 0000000..bd1d2a1 --- /dev/null +++ b/apps/voltmeter1/doc/callgraph.d @@ -0,0 +1,80 @@ +system_clock_init@system.c: + +system_watchdog_timer_init@system.c: + +system_init@system.c: system_clock_init system_watchdog_timer_init + +pio_config_set@pio.c: + +ledmat_init@ledmat.c: pio_config_set pio_config_set + +display_clear@display.c: + +display_init@display.c: ledmat_init display_clear + +tinygl_text_speed_set@tinygl.c: + +tinygl_clear@tinygl.c: display_clear + +tinygl_init@tinygl.c: display_init tinygl_text_speed_set tinygl_clear + +tinygl_font_set@tinygl.c: + +tinygl_text_mode_set@tinygl.c: + +tinygl_text_dir_set@tinygl.c: + +display_task_init@voltmeter1.c: tinygl_init tinygl_font_set tinygl_text_mode_set tinygl_text_dir_set + +adc_init@adc.c: pio_config_set + +adc_enable@adc.c: + +adc_task_init@voltmeter1.c: adc_init adc_enable + +timer_init@timer.c: + +timer_get@timer.c: + +timer_wait_until@timer.c: timer_get + +task_schedule@task.c: timer_init timer_get timer_wait_until timer_get + +tinygl_point@tinygl.c: + +font_pixel_get@font.c: + +tinygl_font_pixel_get@tinygl.c: font_pixel_get + +display_pixel_set@display.c: + +tinygl_draw_point@tinygl.c: display_pixel_set + +tinygl_draw_char@tinygl.c: tinygl_point tinygl_font_pixel_get tinygl_draw_point tinygl_point tinygl_draw_point tinygl_point tinygl_font_pixel_get tinygl_draw_point tinygl_point tinygl_draw_point + +tinygl_draw_string@tinygl.c: tinygl_draw_char + +tinygl_text_advance@tinygl.c: tinygl_draw_string tinygl_draw_string + +pio_output_high@pio.c: + +pio_output_low@pio.c: + +ledmat_display_column@ledmat.c: pio_output_high pio_output_low pio_output_high pio_output_low + +display_update@display.c: ledmat_display_column + +tinygl_update@tinygl.c: tinygl_text_advance display_update + +display_task@voltmeter1.c: tinygl_update + +adc_measure@adc.c: pio_output_high pio_output_low + +tinygl_draw_message@tinygl.c: strncpy strlen + +tinygl_text@tinygl.c: tinygl_draw_message + +adc_task@voltmeter1.c: adc_measure tinygl_text + +main@voltmeter1.c: system_init display_task_init adc_task_init task_schedule @display_task @adc_task + diff --git a/apps/voltmeter1/doc/callgraph.pdf b/apps/voltmeter1/doc/callgraph.pdf new file mode 100644 index 0000000..4a75f00 Binary files /dev/null and b/apps/voltmeter1/doc/callgraph.pdf differ diff --git a/apps/voltmeter1/doc/file_dependencies.pdf b/apps/voltmeter1/doc/file_dependencies.pdf new file mode 100644 index 0000000..6c22185 Binary files /dev/null and b/apps/voltmeter1/doc/file_dependencies.pdf differ diff --git a/apps/voltmeter1/doc/files.d b/apps/voltmeter1/doc/files.d new file mode 100644 index 0000000..f828d68 --- /dev/null +++ b/apps/voltmeter1/doc/files.d @@ -0,0 +1,62 @@ +../../drivers/avr/timer.h: + +../../drivers/avr/timer.c: ../../drivers/avr/timer.h + +../../drivers/avr/timer.o: ../../drivers/avr/timer.c + +../../drivers/avr/system.c: + +../../drivers/avr/system.o: ../../drivers/avr/system.c + +../../utils/task.h: ../../drivers/avr/timer.h + +../../drivers/display.h: + +../../utils/font.h: + +../../utils/tinygl.h: ../../drivers/display.h ../../utils/font.h + +adc.h: + +../../fonts/font3x5_1.h: ../../utils/font.h + +voltmeter1.c: ../../utils/task.h ../../utils/tinygl.h adc.h ../../fonts/font3x5_1.h + +voltmeter1.o: voltmeter1.c + +../../utils/font.c: ../../utils/font.h + +../../utils/font.o: ../../utils/font.c + +../../drivers/avr/pio.h: + +../../drivers/avr/delay.h: + +adc.c: ../../drivers/avr/pio.h ../../drivers/avr/delay.h adc.h + +adc.o: adc.c + +../../drivers/avr/pio.c: ../../drivers/avr/pio.h + +../../drivers/avr/pio.o: ../../drivers/avr/pio.c + +../../drivers/ledmat.h: + +../../drivers/display.c: ../../drivers/ledmat.h ../../drivers/display.h + +../../drivers/display.o: ../../drivers/display.c + +../../drivers/ledmat.c: ../../drivers/avr/pio.h ../../drivers/ledmat.h + +../../drivers/ledmat.o: ../../drivers/ledmat.c + +../../utils/tinygl.c: ../../utils/tinygl.h ../../drivers/display.h ../../utils/font.h + +../../utils/tinygl.o: ../../utils/tinygl.c + +../../utils/task.c: ../../utils/task.h ../../drivers/avr/timer.h + +../../utils/task.o: ../../utils/task.c + +voltmeter1.out: ../../drivers/avr/timer.o ../../drivers/avr/system.o voltmeter1.o ../../utils/font.o adc.o ../../drivers/avr/pio.o ../../drivers/display.o ../../drivers/ledmat.o ../../utils/tinygl.o ../../utils/task.o + diff --git a/apps/voltmeter1/doc/makefile_dependencies.pdf b/apps/voltmeter1/doc/makefile_dependencies.pdf new file mode 100644 index 0000000..7e37aab Binary files /dev/null and b/apps/voltmeter1/doc/makefile_dependencies.pdf differ diff --git a/apps/voltmeter1/doc/module_dependencies.pdf b/apps/voltmeter1/doc/module_dependencies.pdf new file mode 100644 index 0000000..779962d Binary files /dev/null and b/apps/voltmeter1/doc/module_dependencies.pdf differ diff --git a/apps/voltmeter1/doc/modules.d b/apps/voltmeter1/doc/modules.d new file mode 100644 index 0000000..edee5d5 --- /dev/null +++ b/apps/voltmeter1/doc/modules.d @@ -0,0 +1,18 @@ +timer: + +task: timer + +pio: + +ledmat: pio + +display: ledmat + +font: + +tinygl: display font + +adc: pio + +voltmeter1: task tinygl adc + diff --git a/apps/voltmeter1/voltmeter1.c b/apps/voltmeter1/voltmeter1.c new file mode 100644 index 0000000..3d578b9 --- /dev/null +++ b/apps/voltmeter1/voltmeter1.c @@ -0,0 +1,76 @@ +/** @file voltmeter1.c + @author M. P. Hayes, UCECE + @date 1 February 2013 + @brief Simple message display program + + @defgroup voltmeter1 Simple voltmeter +*/ + +#include "system.h" +#include "task.h" +#include "tinygl.h" +#include "adc.h" +#include "../fonts/font3x5_1.h" + + +/* Define polling rates in Hz. */ +#define DISPLAY_TASK_RATE 250 + +#define ADC_TASK_RATE 1 + +#define ADC_AIN 3 + + +static void adc_task_init (void) +{ + adc_init (); + adc_enable (ADC_AIN); +} + + +static void adc_task (__unused__ void *data) +{ + uint8_t count; + char str[3]; + + count = adc_measure (ADC_AIN); + + str[0] = ((count / 10) % 10) + '0'; + str[1] = (count % 10) + '0'; + str[2] = 0; + + tinygl_text (str); +} + + +static void display_task_init (void) +{ + tinygl_init (DISPLAY_TASK_RATE); + tinygl_font_set (&font3x5_1); + tinygl_text_mode_set (TINYGL_TEXT_MODE_STEP); + tinygl_text_dir_set (TINYGL_TEXT_DIR_ROTATE); +} + + +static void display_task (__unused__ void *data) +{ + tinygl_update (); +} + + +int main (void) +{ + task_t tasks[] = + { + {.func = display_task, .period = TASK_RATE / DISPLAY_TASK_RATE}, + {.func = adc_task, .period = TASK_RATE / ADC_TASK_RATE}, + }; + + system_init (); + + display_task_init (); + adc_task_init (); + + task_schedule (tasks, ARRAY_SIZE (tasks)); + return 0; +}