Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
anleitungen:effekte_mll [2024/02/17 12:00] – [Beispiel einer Programmierung] moba_nick | anleitungen:effekte_mll [2024/04/09 16:39] (aktuell) – [LED-Werte als Variable] moba_nick | ||
---|---|---|---|
Zeile 513: | Zeile 513: | ||
{{: | {{: | ||
- | Mit dieser Funktion können LED Werte welche | + | {{bilder: |
+ | |||
+ | === Zielvariable === | ||
+ | Hier wird ein Variablen-Name angegeben, der im weiteren zur Steuerung | ||
+ | |||
+ | === LED-Nummer Offset === | ||
+ | Dies ist die entschiedenste und problematischste Stelle der Funktion. Die Funktion bezieht sich auf die LED aus der Zeile davor. Ist das eine RGB-LED, so ist hier der Wert 0 dem roten Kanal entsprechend. Der Wert 1 ist der Grün-Kanal und 2 der blaue Kanal. Wie gesagt | ||
+ | |||
+ | {{: | ||
+ | \\ | ||
+ | |||
+ | Es ist aber auch möglich, LED-Zustände von LED’s zu testen, die erst nach der LED_to_Var Zeile kommen. In diesem Fall geht der Offset bei 3 los | ||
+ | ^ LED ^ Kanal ^ Offset | ||
+ | |2|Rot|3| | ||
+ | |2|Grün|4| | ||
+ | |2|Blau|5| | ||
+ | |3|Rot|6| | ||
+ | \\ | ||
+ | usw. bis zu einem Offset von 31, also bis zu 9 RGB-LED’s weit. \\ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === Vergleichstyp === | ||
+ | Es gibt 6 Vergleichswerte \\ | ||
+ | ^ Operator | ||
+ | | = | Beide Werte müssen gleich sein | LED-Kanal 10, Vergleichswert 10 | | ||
+ | | != | Beide Werte müssen ungleich sein | LED-Kanal 10, Vergleichswert 20 | | ||
+ | | < | LED muss kleiner sein als Vergleich | LED-Kanal 10, Vergleichswert 11 | | ||
+ | | > | LED muss größer sein als Vergleich | LED-Kanal 11, Vergleichswert 10 | | ||
+ | | & | Binärer Vergleich | Siehe unten | | ||
+ | | !& | Binärer Vergleich negiert | Siehe unten | | ||
+ | \\ | ||
+ | Der bitweise AND-Operator (einzelnes kaufmännisches Und &), bearbeitet die Bitpositionen der umgebenden Ausdrücke unabhängig voneinander gemäß dieser Regel: Wenn beide Eingangsbits 1 sind, ist das resultierende Ergebnis 1, andernfalls ist das Ergebnis 0. \\ | ||
+ | Eine andere Möglichkeit, | ||
+ | | 0 0 1 1 | LED-Kanal (3) | | ||
+ | | 0 1 0 1 | Vergleich (5) | | ||
+ | | - - - - - - | | | ||
+ | | 0 0 0 1 | (operand1 & operand2) – Ergebnis ist wahr | | ||
+ | |||
+ | == Beispielcode== | ||
+ | | Led-Kanal | 92 | Binär: 01011100 | | ||
+ | | Led-Kanal | 101 | Binär: 01100101 | | ||
+ | | Led_to_Var; |Ergebnis: | 01000100, oder 68 dezimal und damit wahr. | | ||
+ | \\ | ||
+ | Um die Binär-Vergleiche zu nutzen, sind ausführliche Tests notwendig. Sie eignen sich nicht für eine schnelle Lösung. Hierfür sind die 4 anderen | ||
+ | \\ | ||
+ | === Vergleichswert === | ||
+ | |||
+ | Hier wird der Wert eingetragen, | ||
==== Variable für 256 Zustände erstellen ==== | ==== Variable für 256 Zustände erstellen ==== | ||
{{: | {{: | ||
Zeile 545: | Zeile 594: | ||
Bei Selectix < | Bei Selectix < | ||
- | ===== Beispiel des Variablen-Namen (hier DCC) ===== | + | === Beispiel des Variablen-Namen (hier DCC) === |
* INCH_DCC: | * INCH_DCC: | ||
* INCH_DCC_13_RED | * INCH_DCC_13_RED | ||
Zeile 852: | Zeile 901: | ||
====== Sound Funktionen für das MP3-TF-16P Modul ====== | ====== Sound Funktionen für das MP3-TF-16P Modul ====== | ||
+ | ===== Hauptplatine ===== | ||
+ | |||
+ | Soundsteuerung mit der 8xMP3-Multi-Soundplatine. \\ | ||
+ | {{bilder: | ||
+ | Hierzu muss ein Pin der Hautplatine zur seriellen Ansteuerung eines Sound Moduls sowie den Typ des angeschlossenen Soundmoduls definiert werden. Danach können Sound-Tracks dieses Moduls abgespielt werden. | ||
+ | Die Pin Nummer kann als Zahl, oder als symbolische Konstante angegeben werden. | ||
+ | Beispiel: KEY80_P1 | ||
+ | Der Typ bestimmt das Protokoll, mit dem das Soundmodul gesteuert wird. | ||
+ | Manche MP3-TF Module haben einen Fehler und müssen mit der Variante NO_CRC (keine Prüfsumme) angesprochen werden. Module mit folgenden Sound Chip Nummern wurde bisher als fehlerhaft identifiziert: | ||
+ | Beispiel einer Programmierung im Prog_Generator: | ||
+ | {{bilder: | ||
+ | |||
+ | Bezeichnung Beschreibung | ||
+ | | Soundmodul wählen | ||
+ | | Titel # abspielen | Track # vom angegebenen Modul abspielen (Rootverzeichnis) | | ||
+ | | Zufälligen Titel abspielen | Zufälligen Titel vom angegebenen Modul abspielen (Rootverzeichnis) | | ||
+ | | Wiedergabe | Setzt die Sound Wiedergabe fort | | ||
+ | | Pause | Hält die Sound Wiedergabe an | | ||
+ | | Endloswiedergabe | Stellt den Wiederholmodus ein | | ||
+ | | Lauter | Lautstärke erhöhen | | ||
+ | | Leiser | Lautstärke reduzieren | | ||
+ | | Lautstärke definieren | Lautstärke setzen auf 0 ..100% | | ||
+ | |||
+ | ===== Soundmodul wählen ===== | ||
+ | |||
+ | Einen Pin der Hautplatinen zur seriellen Ansteuerung eines Sound Moduls sowie den Typ des angeschlossenen Soundmoduls definieren. Die Pin Nummer kann als Zahl, oder als symbolische Konstante angegeben werden. | ||
+ | {{bilder: | ||
+ | Beispiel: KEY80_P1\\ | ||
+ | | Soundmodul | ||
+ | | #1 | A1 → B1 | 1 | KEY80_P1 | D2 | | ||
+ | | #2 | A2 → B2 | 2 | KEY80_P2 | D7 | | ||
+ | | #3 | A3 → B3 | 3 | KEY80_P3 | D8 | | ||
+ | | #4 | A4 → B4 | 4 | KEY80_P4 | D9 | | ||
+ | | #5 | A5 → B5 | 5 | KEY80_P5 | D10 | | ||
+ | | #6 | A6 → B6 | 6 | KEY80_P6 | D11 | | ||
+ | | #7 | A7 → B7 | 7 | KEY80_P7 | D12 | | ||
+ | | #8 | A8 → B8 | 12 | KEY80_P12 | A5 | | ||
+ | | n.c. | A9 | 8 | KEY80_P8 | A1 | | ||
+ | | n.c. | B9 | 9 | KEY80_P9 | A2 | | ||
+ | | n.c. | A10 | 10 | KEY80_P10 | A3 | | ||
+ | | n.c. | B10 | 11 | KEY80_P11 | A4 | | ||
+ | |||
+ | Der Typ bestimmt das Protokoll (MP3-TF-16P, | ||
+ | Manche MP3-TF Module haben einen Fehler und müssen mit der Variante NO_CRC (keine Prüfsumme) angesprochen werden. Module mit folgenden Sound Chip Nummern wurde bisher als fehlerhaft identifiziert: | ||
+ | ===== Titel # abspielen ===== | ||
+ | |||
+ | Track # auf einem angegeben Soundkanal starten (Rootverzeichnis). | ||
+ | Sound Kanal 0 – 7 (entspricht Soundmodul 1 – 8) | ||
+ | Tracknummer 1 – 256 | ||
+ | ===== Zufälligen Titel abspielen ===== | ||
+ | |||
+ | |||
+ | Im Makro wird ein Bereich von Track x bis Track y angegeben. Aus diesem Bereich wird ein zufälliger Track abgespielt. | ||
+ | |||
+ | ===== Wiedergabe ===== | ||
+ | Setzt die Sound Wiedergabe fort, nach dem sie mit dem Pause-befehl unterbrochen wurde. | ||
+ | ===== Pause ===== | ||
+ | |||
+ | Hält die Sound Wiedergabe an. | ||
+ | ===== Endloswiedergabe ===== | ||
+ | |||
+ | Stellt den Wiederholmodus ein | ||
+ | LOOP_ALL: | ||
+ | LOOP_FOLDER: | ||
+ | LOOP_ONE: | ||
+ | LOOP_OFF: | ||
+ | ===== Lauter ===== | ||
+ | |||
+ | Lautstärke erhöhen. | ||
+ | ===== Leiser ===== | ||
+ | |||
+ | Lautstärke reduzieren. | ||
+ | ===== Lautstärke definieren ===== | ||
+ | |||
+ | Der angegebene Prozentwert wird je nach Soundmodul in einen passenden Lautstärkenwert umgewandelt, | ||
+ | |||
==== Sound_Prev ==== | ==== Sound_Prev ==== | ||
Die Sound_Prev Funktion spielt die vorherige Sounddatei ab. | Die Sound_Prev Funktion spielt die vorherige Sounddatei ab. |