Reihenfolge der Effekte

Antworten
Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 378
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 765 mal
Wurde bedankt: 708 mal

Reihenfolge der Effekte

#1

Beitrag von PeterVT11 Verified »

Hallo,

mir ist aufgefallen, dass die Reihenfolge der Effekte (Beleuchtung, Tasten usw.) sehr wichtig ist.

So habe ich zuerst eine LED definiert und
erst darunter einen Pushbutton.
Reihenfolge_1.png
Ergebnis: Die LED bleibt aus. Und es ist egal ob da Test0 (LED leuchtet im "Aus"-Zustand) oder Test1 (LED leuchtet im betätigten Zustand) angegeben wird.

Ist das ein richtiges Verhalten oder ein Bug?
Gut beim ersten Durchlauf ist die Variable undefiniert, aber beim 2. Durchlauf hat sie ja ihren Wert. Oder liege ich hier falsch?

Getestet mit 3.5.0D4, passiert aber auch mit 3.5.0H an einer Lichtmaschine Pro.
Dateianhänge
LEDs_AutoProg.h.txt
(7.5 KiB) 8-mal heruntergeladen
Rehenfolge.MLL_pgf
(357 Bytes) 8-mal heruntergeladen

Viele Grüße Peter

Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
Benutzeravatar
jueff Verified
MLL-TEAM
MLL-TEAM
Beiträge: 197
Registriert: Fr 18. Apr 2025, 07:25
Wohnort: Hallein/AT
Hat sich bedankt: 80 mal
Wurde bedankt: 417 mal

Re: Reihenfolge der Effekte

#2

Beitrag von jueff Verified »

Servus Peter,

danke, das ist ein sehr wichtiger Hinweis!

genauers könnte vielleicht @Hardi dazu sagen, aber ich vermute, dass es so ist:

- der LED-Wert einer Const-LED wird nur beim Einschalten oder beim Ausschalten gesetzt
- ein Variable hat vier Werte: aus, ein, ausgeschaltet, eingeschaltet

- beim Start sind alle Variablen 0, aus
- die Konfiguration wird in jener Reihenfolge abgearbeitet, in der sie definiert sind
- die LED ist aus, weil Variablen TEST0 'aus'
- erst beim erreichen der Taster-Zeile wird entweder TEST0 oder TEST1 gesetzt
- die Variable TEST0 wird auf 'eingeschaltet' gesestzt
- die Konfiguration ist fertig abgearbeitet
- nach jedem Durchlauf werden die Variablen überarbeitet: eingeschaltet wird zu ein, ausgeschaltet wird zu aus

Nächste Loop
- die LED bleibt wie gehabt, weil die Variable zwar "ein" ist, aber der Const darauf nicht reagiert.

Das ist einer der Optimierungen, die @Hardi vermutlich eingebaut hat, um die CPU-Resourcen maximal zu schonen.

Aus MobaLedLib.cpp

Code: Alles auswählen

//-----------------------------
void MobaLedLib_C::Proc_Const()
//-----------------------------
{
  uint8_t Inp = Get_Input(pgm_read_byte_near(cp+P_INPCHANEL));
  if (Inp == INP_TURNED_ON || Inp == INP_TURNED_OFF || Initialize)
Jürgen...

Benutzeravatar
rstaiger Verified
MLL-TEAM
MLL-TEAM
Beiträge: 357
Registriert: Di 15. Apr 2025, 11:23
Wohnort: Nationalpark Eifel
Hat sich bedankt: 494 mal
Wurde bedankt: 828 mal

Re: Reihenfolge der Effekte

#3

Beitrag von rstaiger Verified »

… deswegen habe ich mir angewöhnt, die Pushbuttons zusammen als „Päckchen“ im PG weit oben anzuordnen, vor der ersten Aktion, die die auslösen sollen. Ist auch übersichtlicher.

LG Ralph

Spur Z digital
Märklin Gleise (in komplett-Restauration wegen reinigungshalber geschrumpfter Schwellen) und Weichen-Walters wunderschöne Weichen
Licht und Sound mit der MLL

im Aufbau:
YaMoRC Zentrale YD7010, Rückmelder YD6016LN-RC
ITrain
Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag

Zurück zu „Probleme“