User manual
107Compiler
© 2005 Conrad Electronic
5.4 Bibliotheken
In diesem Teil der Dokumentation sind alle mitgelieferten Hilfsfunktionen beschrieben, die es dem
Benutzer ermöglichen komfortabel auf die Hardware zuzugreifen. Am Anfang wird für jede
Funktion die Syntax für CompactC und BASIC dargestellt. Dann folgt eine Beschreibung der
Funktion und der beteiligten Parameter.
5.4.1 Interne Funktionen
Damit der Compiler die im Interpreter vorhandenen internen Funktionen erkennen kann, müssen
diese Funktionen in der Bibliothek "IntFunc_Lib.cc" definiert sein. Ist diese Bibliothek nicht
eingebunden, so können keine Ausgaben vom Programm getätigt werden. Ein typischer Eintrag in
"IntFunc_Lib.cc" sieht z.B. so aus:
void
Msg_WriteHex$Opc(0x23)(Word val);
Diese Definition besagt, daß die Funktion("Msg_WriteHex") im Interpreter mit einem Sprungvektor
von 0x23
aufgerufen wird, und als Parameter ein word auf dem Stack zu übergeben ist.
Änderungen in der Bibliothek "IntFunc_Lib.cc" können dazu führen, daß die dort deklarierten
Funktionen nicht mehr korrekt ausführbar sind!
5.4.2 AbsDelay
Allgemeine Funktionen
Syntax
void
AbsDelay(
word
ms);
Sub
AbsDelay(ms
As
Word
);
Beschreibung
Die Funktion Absdelay() wartet eine bestimmte Anzahl von Millisekunden.
Die Funktion arbeitet zwar sehr genau, aber unterbricht nicht nur die Abarbeitung des aktuellen
Threads, sondern läßt den Bytecode Interpreter insgesamt warten. Interrupts werden zwar
registriert, aber die Interruptroutinen in dieser Zeit nicht abgearbeitet, da auch dafür der Bytecode
Interpreter nötig ist.
Beim arbeiten mit Threads immer Thread_Delay und nicht AbsDelay benutzen. Wird trotzdem
z.B. ein AbsDelay(1000) benutzt, so tritt folgender Effekt auf: Da der Thread erst nach 5000 Zyklen
(Default Wert) zum nächsten Thread wechselt, würde der Thread 5000 * 1000ms (5000 Sek.)
laufen, bis der nächste Thread anfangen könnte zu arbeiten.
Parameter
ms Wartezeit in ms