n
16 Bit woord
base
Basis van het talstelsel
text
Cursor op de doelstring
offset
Aantal tekens waarmee de ASCII weergave het getal verschoven in de tekststring
gekopieerd
wordt
minwidth minimale breedte van de string
Als offset de waarde STR_APPEND(0xffff) heeft, dan wordt als offset de lengte van de
doelstring aangenomen. In dit geval wordt het integere getal aan de textstring gehangen.
5.3.15
Threads
Multithreading
Onder multithreading verstaat men het quasi parallel verwerken van meerdere processen in
een programma. Eén van deze procedures wordt thread (= draad) genoemd. Bij
multithreading wordt in snelle afstanden tussen de verschillende threads gewisseld, zodat bij
de gebruiker de indruk van gelijktijdigheid ontstaat.
De C-Control Pro firmware ondersteunt behalve het hoofdprogramma (thread "0") maximaal
15 extra threads. Bij multithreading wordt na een bepaald aantal verwerkte byte instructies
de actuele thread in de status "Inactief" gezet en wordt de volgende uitvoerbare thread
gezocht. Daarna start de bewerking van de nieuwe thread. De nieuwe thread kan weer
dezelfde als de vorige zijn, afhankelijk van hoeveel threads er geactiveerd zijn of voor een
uitvoering klaar zijn. Het hoofdprogramma geldt als eerste thread. Daarom is thread "0"
steeds actief, ook als er expliciet geen threads gestart zijn.
De prioriteit van een thread kan beïnvloed worden als u verandert hoeveel bytecodes een
thread tot aan de volgende thread wisseling uit mag voeren (zie threadopties). Hoe kleiner
het aantal cycli tot aan de wisseling, hoe geringer de prioriteit van de thread. De
uitvoeringstijd van een bytecode is gemiddeld
7 – 9 µsec. Bij enkele bytecode commando's duurt het echter langer, b.v. Floating Point
operaties.
Ook interne interpreter –functies gelden als een cyclus. Omdat b.v.
een teken van de seriële interface aankomt, kan in uitzonderingsgevallen een cyclus zeer
lang duren.
Een thread krijgt voor zijn locale variabelen zoveel plaats als hem in de
project toegewezen is. Een uitzondering is thread "0" (het hoofdprogramma). Deze thread
krijgt de overige geheugenruimte, die de andere threads overlaten. U moet daarom vooraf
plannen hoeveel geheugenruimte elke extra thread werkelijk nodig heeft.
Opdat extra threads gestart kunnen worden, moet "multithreading" in de
ingeschakeld worden, en moeten de parameters voor de andere threads in de
op de correcte waarde gezet worden.
Thread synchronisatie
Soms is het nodig dat een thread op de andere wacht. Dit kan b.v. een gemeenschappelijke
hardware bron zijn, die alleen één thread kan bewerken. Of soms definieert men een kritisch
programmabereik, dat slechts één thread mag betreden. Deze functies worden gerealiseerd
door de aanwijzingen
Thread Wait
en
Thread
Signal.
Serial Read
wacht tot
threadopties
van het
projectopties
threadopties
98