Stoppuhr
Posted: Tue 27. Aug 2013, 12:51
Hallo Forum,
zum Ausprobieren stelle ich hier die Beta-Version einer Stoppuhr für "unseren" MSP430 vor.
Erweiterungen sind wünschenswert, daher das "Beta-Stadium".
Gemessen und im Display angezeigt wird die Zeitdauer, während der ein Taster gedrückt ist.
Uhren-Quarzgenau wird die Zeit t im 0,97 Millisekunden-Takt gemessen und kann in zwei Modi ausgewertet werden.
Im "Geschwindigkeits"-Modus wird das Messergebnis t mittels v=s/t in eine Geschwindigkeit [km/h] umgerechnet und angezeigt.
Im "Gewitter"-Modus wird aus der Verzögerung zwischen Blitz und Donner und der Schallgeschwindigkeit die Entfernung zum Blitz gemäß s=v*t errechnet.
(Wenn s=0 angezeigt wird, hat man ein Problem...)
Neben dem Mikrocontroller wird das Display und ein Taster (an P1.1) benötigt.
Und: klar, die Stromversorgung.
Hält man den Taster beim Einschalten gedrückt, so wird der Gewitter-Modus eingestellt.
Die Schallgeschwindigkeit ist mit 343 m/s fest eingestellt, was für trockene Luft bei 20°C gilt.
Sonst ist man im Geschwindigkeits-Modus. Die Distanz s ist z.Zt. fest auf 200m eingestellt.
Warum 200m? Weil das der Abstand ist, in dem die DB die Streckenkilometer beschildert...
Eine Programmerweiterung könnte das flexibler handhaben.
Diese Version benötigt 4900 Bytes an Flash-Speicher. Da ist also noch viel Luft bis zu den maximalen 16kB im MSP430G2553.
Die hier verwendete float-Arithmetik benötigt für die Bibliotheks-Routinen sehr viel Platz im Flash-Speicher.
Gerrit machte zu Recht darauf aufmerksam, dass deutlich weniger Platz benötigt wird, wenn die Rechenvorgänge mittels Festkommaarithmetik ausgeführt werden. Auch hier sind Optimierungen wünschenswert.
Im Zip-File sind mit LCD.c und LCDdogm.c zwei alternative Display-Files enthalten.
LCD.c (und LCD.h) ist für das preiswerte LED-Display gedacht.
LCDdogm.c (und LCDdogm.h) steuert eine stromsparende "Display On Glass"-Anzeige an.
Wer bei Gerrits workshop am 23.6.2013 dabei war, wird in den Programmquellen einige der dort vorgestellten Konzepte wieder erkennen...
vy 73 de Matthias, DL9MWE
zum Ausprobieren stelle ich hier die Beta-Version einer Stoppuhr für "unseren" MSP430 vor.
Erweiterungen sind wünschenswert, daher das "Beta-Stadium".
Gemessen und im Display angezeigt wird die Zeitdauer, während der ein Taster gedrückt ist.
Uhren-Quarzgenau wird die Zeit t im 0,97 Millisekunden-Takt gemessen und kann in zwei Modi ausgewertet werden.
Im "Geschwindigkeits"-Modus wird das Messergebnis t mittels v=s/t in eine Geschwindigkeit [km/h] umgerechnet und angezeigt.
Im "Gewitter"-Modus wird aus der Verzögerung zwischen Blitz und Donner und der Schallgeschwindigkeit die Entfernung zum Blitz gemäß s=v*t errechnet.
(Wenn s=0 angezeigt wird, hat man ein Problem...)
Neben dem Mikrocontroller wird das Display und ein Taster (an P1.1) benötigt.
Und: klar, die Stromversorgung.
Hält man den Taster beim Einschalten gedrückt, so wird der Gewitter-Modus eingestellt.
Die Schallgeschwindigkeit ist mit 343 m/s fest eingestellt, was für trockene Luft bei 20°C gilt.
Sonst ist man im Geschwindigkeits-Modus. Die Distanz s ist z.Zt. fest auf 200m eingestellt.
Warum 200m? Weil das der Abstand ist, in dem die DB die Streckenkilometer beschildert...
Eine Programmerweiterung könnte das flexibler handhaben.
Diese Version benötigt 4900 Bytes an Flash-Speicher. Da ist also noch viel Luft bis zu den maximalen 16kB im MSP430G2553.
Die hier verwendete float-Arithmetik benötigt für die Bibliotheks-Routinen sehr viel Platz im Flash-Speicher.
Gerrit machte zu Recht darauf aufmerksam, dass deutlich weniger Platz benötigt wird, wenn die Rechenvorgänge mittels Festkommaarithmetik ausgeführt werden. Auch hier sind Optimierungen wünschenswert.
Im Zip-File sind mit LCD.c und LCDdogm.c zwei alternative Display-Files enthalten.
LCD.c (und LCD.h) ist für das preiswerte LED-Display gedacht.
LCDdogm.c (und LCDdogm.h) steuert eine stromsparende "Display On Glass"-Anzeige an.
Wer bei Gerrits workshop am 23.6.2013 dabei war, wird in den Programmquellen einige der dort vorgestellten Konzepte wieder erkennen...
vy 73 de Matthias, DL9MWE