User manual

103 C-Control Pro Mega 32
© 2005 Conrad Electronic
Parameter
n
16 Bit Wort
base
Basis des Zahlensystems
text
Zeiger auf den Zielstring
offset
Anzahl der Zeichen mit der die ASCII Darstellung der Zahl verschoben in den Text String kopiert
wird
minwidth
minimale Breite des Strings
Hat
offset
den Wert
STR_APPEND
(
0xffff
), so wird als
offset
die Länge des Zielstrings
angenommen. In diesem Fall wird die Integer Zahl an den Text String angehängt.
5.3.15 Threads
Multithreading
Unter Multithreading versteht man die quasi parallele Abarbeitung mehrerer Abläufe in einem
wird in schnellen Abständen zwischen den verschiedenen Threads gewechselt, so daß beim
Anwender der Eindruck von Gleichzeitigkeit einsteht.
Die C-Control Pro Firmware unterstützt außer dem Hauptprogramm (Thread "
0
") bis zu 15
zusätzliche Threads. Beim Multithreading wird nach einer bestimmten Anzahl von verarbeiteten
Byte Instruktionen der aktuelle Thread auf den Status "
inaktiv
" gesetzt und der nächste
ausführbare Thread wird gesucht. Danach startet die Abarbeitung des neuen Threads. Der neue
Thread kann wieder derselbe wie vorher sein, je nachdem wie viele Threads aktiviert wurden oder
für eine Ausführung bereit sind. Das Hauptprogramm gilt als erster Thread. Daher ist Thread "
0
"
immer aktiv, auch wenn explizit keine Threads gestartet worden sind.
Die Priorität eines Threads kann beeinflußt werden, in dem man ändert wie viele Bytecodes ein
Thread bis zum nächsten Threadwechsel ausführen darf (siehe
Threadoptionen
). Je kleiner die
Anzahl der Zyklen bis zum Wechsel, desto geringer die Priorität des Threads. Die
Ausführungszeit eines Bytecodes ist im Mittel ca. 7-9 µsec. Bei einzelnen Bytecode Befehlen
dauert es jedoch länger, z.B. Floatingpoint Operationen.
Auch interne Interpreterfunktionen gelten als ein Zyklus. Da z.B.
Serial_Read
wartet bis ein
Zeichen von der seriellen Schnittstelle ankommt, kann in Ausnahmefällen ein Zyklus sehr lange
dauern.
Ein Thread bekommt für seine lokalen Variablen soviel Platz wie ihm in den
Threadoptionen
des
Projekts zugewiesen wird. Eine Ausnahme ist Thread "
0
" (das Hauptprogramm). Dieser Thread
erhält den restlichen Speicherplatz, den die anderen Threads übrig lassen. Man sollte daher
vorher planen wie viel Speicherplatz jeder zusätzliche Thread wirklich benötigt.
Damit zusätzliche Threads gestartet werden können muß "
Multithreading
" in den
Projektoptionen
eingeschaltet werden, und die Parameter für die weiteren Threads in den
Threadoptionen
auf korrekte Wert gesetzt werden.
Thread Synchronisation
Manchmal ist es nötig daß ein Thread auf den anderen wartet. Dies kann z.B. eine gemeinsame