From 1320cad49c0e6b6dd0b00bc4635ac4e7af5eb4fd Mon Sep 17 00:00:00 2001 From: Michael Hayes Date: Fri, 24 May 2013 05:39:35 +0000 Subject: [PATCH] Add voltmeter1 --- apps/README | 14 ++- apps/bounce1/doc/Makefile | 5 +- apps/bounce2/doc/Makefile | 5 +- apps/bounce3/doc/Makefile | 5 +- apps/bounce4/doc/Makefile | 5 +- apps/bounce5/doc/Makefile | 5 +- apps/chooser/doc/Makefile | 5 +- apps/demo1/doc/Makefile | 5 +- apps/demo2/doc/Makefile | 5 +- apps/fonttest1/doc/Makefile | 5 +- apps/hello1/doc/Makefile | 5 +- apps/hello2/doc/Makefile | 5 +- apps/hello3/doc/Makefile | 5 +- apps/hello4/doc/Makefile | 5 +- apps/hello5/doc/Makefile | 5 +- apps/ir_grab1/doc/Makefile | 5 +- apps/ir_grab2/doc/Makefile | 5 +- apps/ir_grab3/doc/Makefile | 5 +- apps/ir_serial_test1/doc/Makefile | 5 +- apps/ir_serial_test2/doc/Makefile | 5 +- apps/ir_serial_test3/doc/Makefile | 5 +- apps/ir_uart_test1/doc/Makefile | 5 +- apps/ir_uart_test2/doc/Makefile | 5 +- apps/ir_uart_test3/Makefile | 2 +- apps/ir_uart_test3/doc/Makefile | 5 +- apps/ir_uart_test3/doc/callgraph.d | 26 +++-- apps/ir_uart_test3/doc/files.d | 32 +++--- apps/ir_uart_test3/doc/modules.d | 4 +- apps/ir_uart_test3/ir_uart_test3.c | 28 ++--- apps/led0/doc/Makefile | 5 +- apps/led1/doc/Makefile | 5 +- apps/led2/doc/Makefile | 5 +- apps/led3/doc/Makefile | 5 +- apps/led4/doc/Makefile | 5 +- apps/led5/doc/Makefile | 5 +- apps/pio1/doc/Makefile | 5 +- apps/pio2/doc/Makefile | 5 +- apps/pio2/pio2.c | 1 + apps/pio3/doc/Makefile | 5 +- apps/scribble1/Makefile.test | 4 +- apps/scribble1/doc/Makefile | 5 +- apps/snake1/doc/Makefile | 5 +- apps/space10/doc/Makefile | 5 +- apps/space10/space10.c | 1 - apps/space11/doc/Makefile | 5 +- apps/space11/space11.c | 1 - apps/space12/doc/Makefile | 5 +- apps/space12/space12.c | 29 +++-- apps/space9/doc/Makefile | 5 +- apps/space9/space9.c | 1 - apps/spacey_remote1/doc/Makefile | 5 +- apps/squeak0/doc/Makefile | 5 +- apps/squeak1/doc/Makefile | 5 +- apps/squeak2/doc/Makefile | 5 +- apps/squeak3/doc/Makefile | 5 +- apps/squeak4/doc/Makefile | 5 +- apps/steer1/doc/Makefile | 5 +- apps/stopwatch1/doc/Makefile | 5 +- apps/task1/doc/Makefile | 5 +- apps/task2/doc/Makefile | 5 +- apps/tdmdemo1/doc/Makefile | 5 +- apps/tdmdemo2/doc/Makefile | 5 +- apps/updown1/doc/Makefile | 5 +- apps/updown2/doc/Makefile | 5 +- apps/voltmeter1/Makefile | 70 ++++++++++++ apps/voltmeter1/Makefile.test | 64 +++++++++++ apps/voltmeter1/adc.c | 104 ++++++++++++++++++ apps/voltmeter1/adc.h | 17 +++ apps/voltmeter1/doc/Makefile | 45 ++++++++ apps/voltmeter1/doc/README | 16 +++ apps/voltmeter1/doc/build_dependencies.pdf | Bin 0 -> 16599 bytes apps/voltmeter1/doc/callgraph.d | 80 ++++++++++++++ apps/voltmeter1/doc/callgraph.pdf | Bin 0 -> 14413 bytes apps/voltmeter1/doc/file_dependencies.pdf | Bin 0 -> 13879 bytes apps/voltmeter1/doc/files.d | 62 +++++++++++ apps/voltmeter1/doc/makefile_dependencies.pdf | Bin 0 -> 15789 bytes apps/voltmeter1/doc/module_dependencies.pdf | Bin 0 -> 8118 bytes apps/voltmeter1/doc/modules.d | 18 +++ apps/voltmeter1/voltmeter1.c | 76 +++++++++++++ 79 files changed, 849 insertions(+), 106 deletions(-) create mode 100644 apps/voltmeter1/Makefile create mode 100644 apps/voltmeter1/Makefile.test create mode 100644 apps/voltmeter1/adc.c create mode 100644 apps/voltmeter1/adc.h create mode 100644 apps/voltmeter1/doc/Makefile create mode 100644 apps/voltmeter1/doc/README create mode 100644 apps/voltmeter1/doc/build_dependencies.pdf create mode 100644 apps/voltmeter1/doc/callgraph.d create mode 100644 apps/voltmeter1/doc/callgraph.pdf create mode 100644 apps/voltmeter1/doc/file_dependencies.pdf create mode 100644 apps/voltmeter1/doc/files.d create mode 100644 apps/voltmeter1/doc/makefile_dependencies.pdf create mode 100644 apps/voltmeter1/doc/module_dependencies.pdf create mode 100644 apps/voltmeter1/doc/modules.d create mode 100644 apps/voltmeter1/voltmeter1.c 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 0000000000000000000000000000000000000000..96f2857be10327e9c7a2adb0ed285aa6f190e1e3 GIT binary patch literal 16599 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 W?H&JEoRN)*kqMfVR9IF7`u_kTI$b~j literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4a75f005c1dae0e19e6b799c84d0f845d91b2b38 GIT binary patch literal 14413 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 Zj!uRSPJbfK$il$H21`aJDlZ26{{gX8HmU#s literal 0 HcmV?d00001 diff --git a/apps/voltmeter1/doc/file_dependencies.pdf b/apps/voltmeter1/doc/file_dependencies.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6c22185b0877087e530f1476b054bcd35262d5a8 GIT binary patch literal 13879 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 NWk;l@mQa#J{6Ci`Ab0=( literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7e37aab1978c3ea3d1356094b8de46cb917dbf70 GIT binary patch literal 15789 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 F{C|;&p&|eP literal 0 HcmV?d00001 diff --git a/apps/voltmeter1/doc/module_dependencies.pdf b/apps/voltmeter1/doc/module_dependencies.pdf new file mode 100644 index 0000000000000000000000000000000000000000..779962dbeb3cd1e546442cb395d2a9d241ee1652 GIT binary patch literal 8118 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 literal 0 HcmV?d00001 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; +}