erstellt 10.05.2019 | ||||||||||||||||||||||||||||||||||||||||
Kleine Programmier Kniffe |
||||||||||||||||||||||||||||||||||||||||
Im
Allgemeinen lässt man während eine Programmschleife läuft eine Led
blinken, dies Signalisiert zum einen ob meine Schaltung mit Spannung
versorgt ist beziehungsweise ob sie eingeschaltet ist, anderseits erkennt man an dem blinken ob meine Programmschleife läuft, oder wenn die Led dauerhaft aus oder an bleibt ob mein Programm hängen geblieben ist. Die einfachste Form eine Led zum blinken zu bringen besteht darin sie "An" zu schalten, dann sie eine gewisse Zeit an zu lassen um sie dann wieder "Aus" zu schalten.
Diese Methode funktioniert ganz gut, hat aber den Nachteil das die Programmschleife dadurch stark gebremst wird. Insgesamt kann sich dadurch der Durchlauf einer Programmschleife erheblich verlängern . Wenn nur eine Led blinken soll ist es in Ordnung, wenn das Programm aber auch andere Funktionen ausüben soll kommen wir schnell an die Grenzen. Wenn zum Beispiel innerhalb des Programm abgefragt werden soll ob eine Taste gedrückt ist, muss man unter umständen die Taste so lange festhalten bis ein Schleifendurchgang erfolgt ist damit dieses Ereignis vom Programm erfasst werden kann. Etwas schneller läuft die Schleife bei folgenden Programm:
Hier beträgt die Laufzeit des Blinken nur noch eine halbe Sekunde. Und es geht noch viel schneller. Hier wird erst nach jedem hundertsten Durchlauf der Schleife der Zustand der Led gewechselt.
|
||||||||||||||||||||||||||||||||||||||||
Tastengeschwindigkeit |
||||||||||||||||||||||||||||||||||||||||
Oft
wird über eine Taste einen Wert über mehrere Decaden eingegeben, das kann je nach
Eingabewert dazu führen das die entsprechende Taste relativ lange gedrückt werden muss. Um diese Eingabe nicht so langwierig zu gestalten, lässt man das "Auf" oder "Ab" zählen über mehrer Geschwindigkeiten laufen. So das man schnell hohe Differenzen eingeben kann, aber auch die Werte bei kleine Abstände noch differenzieren kann. Dazu lässt man die Tastenabfrage im Beispiel von zwei Tasten ( auf und ab)in einer separaten Routine laufen . |
||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||
Taktgeschwindigkeit anzeigen |
||||||||||||||||||||||||||||||||||||||||
Angenommen der
Prozessortakt beträgt 16 MHz, so kann man den internen Timer
benutzen um sich die Taktgeschwindigkeit anzeigen zu lassen. Benutzt man beispielsweise dazu beim Atmega 8 oder auch andere Typen , den Timer 1, der mit einer Auflösung von 16 Bit arbeitet so kommen wir bei 16 Bit auf 65535 Stufen, also nach jeweils 65535 Takte wird ein Überlauf erreicht. Man kommt damit auf 244,14 Überläufe pro Sekunde. Multipliziert man diese Überläufe mit der Anzahl der Timerschritte kommen wir auf 244,14 mal 65535 = ca 16 000 000 Hz. Diese Berechnung kann man sich nun anzeigen lassen und hat damit den aktuellen Prozessortakt. |
||||||||||||||||||||||||||||||||||||||||
Aktualisiert 02.01.2023 |