U23 2005/Firmware-Makros
Die Datei script_macros.inc enthält einige Makros mit denen sehr schnell statische Skripts für die Firmware erstellt werden können.
Contents
MACRO_NOP
Argumente: (keine)
Funktion: Lässt die CPU idlen und spart dadurch Strom.
MACRO_FADE_CHANNEL
Argumente: Channel TargetBrightness Delay AddBrightness
- Channel: Gibt den Farbkanal an. Mögliche Werte sind ChannelR (Rot), ChannelG (Grün) und ChannelB (Blau).
- TargetBrightness: Gibt die Helligkeit des Kanals an. Wertebereich 0 (aus) bis 255 (volle Helligkeit).
- Delay: Füge pro Timertakt diesen Wert (1 bis 255) zu einem Verzögerungszähler hinzu. Sollte 255 überschritten werden, wird der Wert in AddBrightness zur aktuellen Helligkeit des Kanals addiert. 0 schaltet das Delay aus.
- AddBrightness: Füge pro Timertakt diesen Wert (0 bis 255) zur aktuellen Helligkeit hinzu.
Funktion: Fadet einen gegebenen Farbkanal mit einer gegebenen Geschwindigkeit auf eine gegebene Helligkeit.
Beispiel:
MACRO_FADE_CHANNEL ChannelR, 120, 0, 1
Die roten LEDs werden pro 1/120 Sekunde (Timertakt) um eine Helligkeitsstufe erhöht. Bei Helligkeitsstufe 120 ist das Makro beendet. Dieses ist nach genau einer Sekunde der Fall.
MACRO_FADE_CHANNEL ChannelG, 160, 0, 4
Die grünen LEDs werden pro Timertakt um vier Helligkeitsstufen erhöht. Bei Helligkeitsstufe 160 ist das Makro beendet. Das ist der Fall nach 160÷4=40 Takten, also 40×1/120=1/3 Sekunde der Fall.
MACRO_FADE_CHANNEL ChannelB, 16, 8, 4
Die blauen LEDs werden pro überlaufendem Delay um vier Helligkeitsstufen erhöht. Bei Helligkeitsstufe 16 ist das Makro beendet. Das ist der Fall nach 16÷4=4 Schritten, jedoch mit einer Verzögerung von 255÷8=32 Takten pro Schritt, also 4×32=128 Takten. Das wären 128×1/120=1.066 Sekunden.
MACRO_FADE_CHANNELS
Argumente: BrightnessR BrightnessG BrightnessB
- Brightness{R,G,B}: Die Helligkeit des {roten, grünen, blauen} Channels (0-255).
Funktion: Setzt alle Farbkanäle direkt auf die jeweils angegebenen Helligkeitswerte.
MACRO_JUMP
Argumente: RelativeInstructionCount
- RelativeInstructionCount: Anzahl der Instruktionen.
Funktion: Springt um eine gewisse Anzahl an Instruktionen zurück. Zu beachten: Die JUMP-Instruktion muss auch übersprungen werden! Beispiel:
1: MACRO_NOP 2: MACRO_JUMP -2 ; springt zu Zeile 1
MACRO_SET_CHANNEL
Argumente: Channel TargetBrightness
- Channel: Gibt den Farbkanal an. Mögliche Werte sind ChannelR (Rot), ChannelG (Grün) und ChannelB (Blau).
- TargetBrightness: Die Helligkeit (0-255).
Funktion: Setzt den angegebenen Channel auf die angegebene Helligkeit.
MACRO_SLEEP
Argumente: Delay
- Delay: Verzögerung in 1/120 sec als 16bit-Zahl (also max. 65535).
Funktion: Wartet die angegebene Zeit.
MACRO_WAIT
Argumente: Bitmask
- Bitmask: Bitmaske des Kanals.
- Rot: (1<<ChannelR)
- Grün: (1<<ChannelG)
- Blau: (1<<ChannelB)
Funktion: Wartet, bis ein Kanal die gewünschte Helligkeit erreicht hat.
1: MACRO_FADE_CHANNEL ChannelR, 255, 35, 0 2: MACRO_WAIT (1<<ChannelR)
MACRO_CLEAR
Argumente: (keine)
Funktion: Setzt alle Kanäle auf Helligkeit 0 zurück.
-- manuke & Diozaka