Fehlermeldung nach der Erweiterung von Ausgängen

Antworten
Eckhart Verified
Leuchtturm
Beiträge: 457
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 424 mal
Wurde bedankt: 375 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#76

Beitrag von Eckhart Verified »

Hallo Misha!
Misha hat geschrieben: Fr 21. Aug 2026, 10:13
Könnte dies tatsächlich mit dem vorherigen Problem mit der 8-Bit-Variable zusammenhängen?

LEDs_AutoProg.h.txt
Ja! Dieses hier:

typedef struct
{
uint8_t TypAndInCnt; // Type bits 7 & 6, InCnt 0..5
uint8_t Channel; <--- muss "inch_t Channel" sein!
} __attribute__ ((packed)) Store_Channel_T;

// Definition of channels and counters that need to store state in EEProm
const PROGMEM Store_Channel_T Store_Values[] =
{ // Mode + InCnt , Channel
{ IS_TOGGLE + 1 , INCH_DCC_211_ONOFF }, // Activation By Button
{ IS_COUNTER , COUNTER_ID 1 }, // Schakelaar Bus verlichting Aan
{ IS_COUNTER , COUNTER_ID 5 }, // Schakelfunktie in- en uitrijden Vorkheftruck (werkt hetzelfde)
{ IS_COUNTER , COUNTER_ID 7 }, // Excel row 43
{ IS_PULSE + 2 , Var_Kraam9_0 }, // Knopdrukker_Verlichting_3 (pc)
{ IS_COUNTER , COUNTER_ID 9 }, // Zweefmolen gaat Aan
{ IS_COUNTER , COUNTER_ID 12 }, // Excel row 70
{ IS_PULSE + 2 , Var_Kraam10_0 }, // Knopdrukker_Verlichting_3 (pc)
{ IS_COUNTER , COUNTER_ID 13 }, // Draaimolen gaat Uit
{ IS_COUNTER , COUNTER_ID 15 }, // Geluid Uitzetten met druk op de knop
{ IS_COUNTER , COUNTER_ID 16 }, // Kermis Start om T1300, Reset op T2300.
{ IS_COUNTER , COUNTER_ID 17 }, // Kraam1 Start op Kermis1, Reset op Kermis_Uit.
{ IS_COUNTER , COUNTER_ID 18 }, // Kraam2 Start op Kermis2, Reset op Kermis_Uit.
{ IS_COUNTER , COUNTER_ID 19 }, // Kraam3 Start op Kermis3, Reset op Kermis_Uit.
{ IS_COUNTER , COUNTER_ID 20 }, // Kraam4 Start op Kermis4, Reset op Kermis_Uit.
{ IS_COUNTER , COUNTER_ID 21 }, // Kraam5 Start op Kermis5, Reset op Kermis_Uit.
{ IS_COUNTER , COUNTER_ID 22 }, // Kraam6 Start op Kermis6, Reset op Kermis_Uit.
{ IS_COUNTER , COUNTER_ID 23 }, // Kraam7 Start op Kermis7, Reset op Kermis_Uit.
{ IS_COUNTER , COUNTER_ID 24 }, // Kraam8 Start op Kermis8, Reset op Kermis_Uit.
{ IS_COUNTER , COUNTER_ID 25 }, // Kraam8 Start op Kermis9, Reset op Kermis_Uit. Zweefmolen
{ IS_COUNTER , COUNTER_ID 26 }, // Kraam8 Start op Kermis9, Reset op Kermis_Uit. Zweefmolen
{ IS_COUNTER , COUNTER_ID 34 }, // Airbus Fly_By Start op T730 en T1930, Reset op Airbus_Reset.
{ IS_COUNTER , COUNTER_ID 38 }, // Blink Loodslicht Laad- en Losplaats
{ IS_COUNTER , COUNTER_ID 39 }, // Start op T600 of T1230, Reset op T200
{ IS_TOGGLE + 1 , INCH_DCC_56_ONOFF }, // Kanaal Rood ( WS2811 Chip boven - poort middelste)
{ IS_COUNTER , COUNTER_ID 49 }, // Disco Start op T2100, Reset op T100
{ IS_COUNTER , COUNTER_ID 51 }, // Zweefmolen gaat Draaien
{ IS_COUNTER , COUNTER_ID 52 }, // Draaiorgel Start om T1230, Reset op T1700.
{ IS_COUNTER , COUNTER_ID 53 }, // StadsGeluiden Start om T830, Reset op T2300.
};

Denn sonst können von den InCh, größer als 256, die Zustände nicht gespeichert werden! Da ist wohl noch ein Fehler im Excel!

Gruß, Eckhart

Meister Eckhart (*1260): "Und plötzlich weißt du, es ist Zeit etwas neues zu beginnen..."
Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 500
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 863 mal
Wurde bedankt: 799 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#77

Beitrag von PeterVT11 Verified »

Hallo Misha,

ich bin einen Schritt weiter gekommen. Es liegt eindeutig nicht an den Multiplex-Einträgen. Ich hab diese Einträge rausgenommen und mittels P_Schedule 50 Häuser (Adressen) eingefügt. Somit bin ich über die kritische Schwelle gekommen.

Die Variable T1230 wird zur Steuerung von Sound_Channel_xxxx verwendet. Ist die Adresse dafür > 256, so gibt es den Fehler.

Der Fehler liegt bei den SOUND_CHANNEL_SET_VOLUME() und SOUND_CHANNEL_PAUSE(). Dort wird ein InCh verwendet.
InCh Fehler bei Sound_Channel.png
Da muss Jürgen (@jueff) leider noch mal dran.
Dateianhänge
Fehler bei Sound_Channel.MLL_pgf
(59.39 KiB) 1-mal heruntergeladen

Viele Grüße Peter

Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
Misha Verified
Kerzenanzünder
Beiträge: 27
Registriert: Mi 19. Nov 2025, 17:44
Wohnort: Utrecht (Nederland)
Hat sich bedankt: 22 mal
Wurde bedankt: 17 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#78

Beitrag von Misha Verified »

Hallo Peter und alle anderen,

Ich habe heute in Zusammenarbeit mit Google AI etwa sieben Stunden mit der Fehlersuche verbracht. Trotz einiger Anpassungen an uint16_t besteht der Fehler weiterhin.

Ich glaube nicht, dass der Fehler im Multiplexer liegt. Vorher hat alles einwandfrei funktioniert, aber durch die Erweiterung der Anzahl der Jahrmarktstände und die damit verbundenen zusätzlichen Eingänge gerät eine Variable irgendwo außer Takt, weil sie mit 8 Bit statt 16 Bit arbeitet.

Ich verstehe das Problem überhaupt nicht und habe aufgegeben. Jemand, der den Code versteht, kann mir vielleicht weiterhelfen.

Mir ist klar, dass der Fehler zwischen den geschweiften Klammern des Arrays 'MLLExtension* mllExtensions[] = { hier tritt der Fehler auf}' auftritt. Irgendwo wird das Limit von 255 überschritten. Ich konnte die verantwortliche Variable bisher nicht finden.

Ich habe einige Anpassungen an der Datei mllextension.h vorgenommen, aber das hat das Problem leider nicht gelöst.

class ExtensionProcessor
-----
{
// uint8_t count = 0;

uint16_t count = 0; // Geändert von Misha am 23.08.2026
MLLExtension** extensions;

public:
// ExtensionProcessor(MLLExtension* extensions[], uint8_t count)

ExtensionProcessor(MLLExtension* extensions[], uint16_t count) // Geändert von Misha am 23.08.2026
-----

Ich hoffe, jemand mit mehr Erfahrung könnte sich das auch ansehen.

Ich konnte über die Arduino-CLI eine Fehlerprotokolldatei des Compilers erstellen.
foutenlog.txt
(8.06 KiB) 3-mal heruntergeladen
Vielleicht liefert diese weitere Erkenntnisse.

Viele Grüße, Misha.

Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 500
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 863 mal
Wurde bedankt: 799 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#79

Beitrag von PeterVT11 Verified »

Hallo Misha,

wie kommst Du darauf :
Mir ist klar, dass der Fehler zwischen den geschweiften Klammern des Arrays 'MLLExtension* mllExtensions[] = { hier tritt der Fehler auf}' auftritt. Irgendwo wird das Limit von 255 überschritten. Ich konnte die verantwortliche Variable bisher nicht finden.
Innerhalb des Arrays wird nur die Erweiterung P_Schedule abgearbeitet. Ich hab in dem CLI-Log gesehen, dass Du die P_Schedule-Version 0.17 verwendest. Für die InChLong-Geschichte muss aber mind. die Version 0.21 verwendet werden. Am besten nimmst Du die aktuelle Version Version 0.24.

Ferner glaube ich, dass eine AI kein gutes Werkzeug für die MobaLedLib ist. Da sind zu viele Speicher-Kniffe drin. Wie im vorherigen Post geschrieben, habe ich die Sound_Channel-Funktionen ermittelt, die den Fehler bringen. Auslöser ist, da hast Du recht, die Vergrößerung der Objekte.

Viele Grüße Peter

Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag

Zurück zu „Bugs und offene Punkte“