C Control PRO Unit Mega 128 198219 User Manual
Product codes
198219
360
Bibliotheken
© 2013 Conrad Electronic
// Ausgabe von Integer, Fließkomma, String und Hexzahl
Str_Printf(str,
"arg1: %8d arg2:%10.3f arg3:%20s arg4: %x\r"
,
1234
,
2
.
34567
,
"hallo welt"
,
256
);
Msg_WriteText(str);
Str_Printf(str,
"arg1: %u arg2: %.2u\r",
65000
,
0xff
);
Msg_WriteText(str);
}
' Basic
Sub main()
Dim str(
80
) As Char
Str_Printf(str, "arg1: %08d arg2:%10.3f arg3:%20s arg4: %x\r",
1234
,
2.34567
, "hallo welt",
256
)
Msg_WriteText(str)
Str_Printf(str, "arg1: %u arg2: %.2u\r",
65000
,
&Hff
)
Msg_WriteText(str)
End Sub
5.25
Threads
Multithreading
Unter Multithreading versteht man die quasi parallele Abarbeitung mehrerer Abläufe in einem Pro-
gramm. Einer von diesen Abläufen wird Thread (engl. Faden) genannt. Beim Multithreading wird in
schnellen Abständen zwischen den verschiedenen Threads gewechselt, so daß beim Anwender der
Eindruck von Gleichzeitigkeit entsteht.
gramm. Einer von diesen Abläufen wird Thread (engl. Faden) genannt. Beim Multithreading wird in
schnellen Abständen zwischen den verschiedenen Threads gewechselt, so daß beim Anwender der
Eindruck von Gleichzeitigkeit entsteht.
Die C-Control Pro Firmware unterstützt außer dem Hauptprogramm (Thread "
0
") bis zu 13 zusätzli-
che Threads. Mit der Version 2.12 der IDE wurde das Multithreading geändert. Vor 2.12 wurde in den
Projekt Optionen jedem Thread eine Anzahl von Bytecodes zugeteilt, nach der der Thread gewech-
selt wurde. Dies führte of zu einer ungerechten Verteilung, da z.B. Fließkomma Operationen viel
mehr CPU Zeit benötigen als andere Bytecodes. Jetzt arbeitet das Multithreading mit Zeitscheiben.
Der Anwender kann jedem Thread nun eine Anzahl von 10ms Zeitzyklen zuweisen, nachdem der
Threadwechsel stattfindet.
Projekt Optionen jedem Thread eine Anzahl von Bytecodes zugeteilt, nach der der Thread gewech-
selt wurde. Dies führte of zu einer ungerechten Verteilung, da z.B. Fließkomma Operationen viel
mehr CPU Zeit benötigen als andere Bytecodes. Jetzt arbeitet das Multithreading mit Zeitscheiben.
Der Anwender kann jedem Thread nun eine Anzahl von 10ms Zeitzyklen zuweisen, nachdem der
Threadwechsel stattfindet.
Beim Multithreading wird nach einer bestimmten Anzahl von verarbeiteten Byte Instruktionen der ak-
tuelle Thread auf den Status "inak tiv" gesetzt und der nächste ausführbare Thread wird gesucht. Da-
nach 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 Haupt-
programm gilt als erster Thread. Daher ist Thread "
tuelle Thread auf den Status "inak tiv" gesetzt und der nächste ausführbare Thread wird gesucht. Da-
nach 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 Haupt-
programm gilt als erster Thread. Daher ist Thread "
0
" immer aktiv, auch wenn explizit keine Threads
gestartet worden sind.
Wird das Hauptprogramm (Thread "
0
") beendet, stoppen auch alle anderen Threads.
Die Priorität eines Threads kann beeinflußt werden, in dem man ändert, wie viele Zeitzyklen ein
Thread bis zum nächsten Threadwechsel ausführen darf. Je kleiner die Anzahl der Zyklen bis zum
Wechsel, desto geringer die Priorität des Threads.
Thread bis zum nächsten Threadwechsel ausführen darf. Je kleiner die Anzahl der Zyklen bis zum
Wechsel, desto geringer die Priorität des Threads.