Difference between revisions of "U23 2005/Firmware-Makros"

From C4 Wiki
Jump to: navigation, search
(MACRO_NOP)
(MACRO_FADE_CHANNEL: Mglw. ist Delay noch falsch erklärt. Da ist ausprobieren angesagt...)
Line 13: Line 13:
 
: Channel: Gibt den Farbkanal an. Mögliche Werte sind ChannelR (Rot), ChannelG (Grün) und ChannelB (Blau).
 
: 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).
 
: TargetBrightness: Gibt die Helligkeit des Kanals an. Wertebereich 0 (aus) bis 255 (volle Helligkeit).
: Delay: ?
+
: 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: ?
+
: AddBrightness: Füge pro Timertakt diesen Wert (0 bis 255) zur aktuellen Helligkeit hinzu.
  
'''Funktion:''' Fadet einen gegebenen Farbkanal in einer gegebenen Zeit auf eine gegebene Helligkeit.
+
'''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 ==
 
== MACRO_FADE_CHANNELS ==

Revision as of 13:31, 4 November 2005

Die Datei script_macros.inc enthält einige Makros mit denen sehr schnell statische Skripts für die Firmware erstellt werden können.

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