Fehlermeldung nach der Erweiterung von Ausgängen

Antworten
EP2Bernie Verified
Beiträge: 4
Registriert: Di 15. Apr 2025, 14:42
Wohnort: Sindelfingen
Hat sich bedankt: 74 mal
Wurde bedankt: 4 mal

Fehlermeldung nach der Erweiterung von Ausgängen

#1

Beitrag von EP2Bernie Verified »



Was lässt sich nicht machen?
Durch die stetige Erweiterung der Beleuchtungen/Weichen bin ich jetzt auf eine Fehlermeldung gestoßen:
Die Anzahl der verwendeten Eingangskanäle ist zu groß. Es sind maximal 250 verfügbar.
Ansonsten funktioniert alles einwandfrei.

Was wurde schon alles unternommen, um den Fehler zu finden bzw. einzugrenzen?
Zurücknehmen der neuen Stepperplatine.

Hat es schon mal funktioniert und wenn ja, was wurde danach verändert?
Ja, durch Hinzufügen einer weiteren Stepperplatine.

Zusatzinformationen:

Software
Betriebsystem:Windows 11
Version der MobaLedLib:Betaversion - Ver 3.4.0A - 28.05.2025
eingesetztes Version von Excel:MS Excel 2019
Hardware
Version der Hauptplatine:Version 1.8.2 - 22.12.2022
Controller auf der Hauptplatine:ESP32 38-polig
Ansteuerung der MobaLedLib-Effekte:DCC
Verwendete LEDs/ICs:WS2812B
WS2811 - IC


Bilder und Dateianhänge
Dieser Text wurde erstellt mit dem Generator für Hilfeanfragen der MobaLedLib.
Fehlermeldung 250 Eingangskanäle.pdf
(264.28 KiB) 183-mal heruntergeladen
Prog+BWges+LS+Weichen.MLL_pgf
(33.42 KiB) 187-mal heruntergeladen
Gibt es die Möglichkeit diese Eingangskanäle zu erweitern, oder muss ich meine Definitionen auf mehrere Hauptplatinen verteilen?

Ich bedanke mich schon im Voraus für Lösungsvorschläge.

Grüße, Bernd

Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 250
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 521 mal
Wurde bedankt: 540 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#2

Beitrag von PeterVT11 Verified »

Hallo Bernd,

das ist ein Fehler oder Problem. Ich bin mir nicht sicher, ob die Begrenzung auf 250 eine Bedeutung (1 Byte) hat oder willkürlich gewählt wurde.
Hier werden die INCH_DCC_xxx, Switch-Tasten und alle verwendeten Variablen zusammen gezählt. Das sind in deinem Fall eben 251.
Ich denke, da kann uns nur @jueff oder @Hardi helfen.

Nachtrag:
Ich hab mal den Wert erhöht, doch das gibt dann Compilerfehler, da Variablen von 16 Bit gefordert sind, aber nur 8 Bit definiert sind.
Ich fürchte, das ist im Moment die Grenze für die MobaLedLib. Man könnte/müsste das Ganze auf zwei Lichtmaschinen verteilen. Zumindest bis es eine Software-Lösung gibt.

Viele Grüße Peter

Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
EP2Bernie Verified
Beiträge: 4
Registriert: Di 15. Apr 2025, 14:42
Wohnort: Sindelfingen
Hat sich bedankt: 74 mal
Wurde bedankt: 4 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#3

Beitrag von EP2Bernie Verified »

Hallo Peter,

vielen Dank für deine schnelle Antwort. Wie bereits erwähnt werde ich im Endausbau die Beleuchtung und die Weichen auf mindestens 2 Lichtmaschinen aufteilen. Da kommen noch einige weitere Beleuchtungen, Weichen, Signale und Sound dazu. Soweit reicht mir vorläufig mal deine hilfreiche Antwort. Besten Dank dafür.

Gruß, Bernd

Benutzeravatar
jueff Verified
MLL-TEAM
MLL-TEAM
Beiträge: 75
Registriert: Fr 18. Apr 2025, 07:25
Wohnort: Hallein/AT
Hat sich bedankt: 51 mal
Wurde bedankt: 265 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#4

Beitrag von jueff Verified »

PeterVT11 hat geschrieben: Mi 20. Aug 2025, 17:57
Hallo Bernd,

Ich denke, da kann uns nur @jueff oder @Hardi helfen.
Nach meinem Urlaub….

Grüße aus Brasilien,
Jürgen…
Zuletzt geändert von jueff Verified am Di 16. Sep 2025, 20:54, insgesamt 1-mal geändert.

Benutzeravatar
jueff Verified
MLL-TEAM
MLL-TEAM
Beiträge: 75
Registriert: Fr 18. Apr 2025, 07:25
Wohnort: Hallein/AT
Hat sich bedankt: 51 mal
Wurde bedankt: 265 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#5

Beitrag von jueff Verified »

Hallo Zusammen,

Jede Variable in der MobaLedLib benötigt 2 Bit Speicher. Aufgrund des geringen Speichers das Nano (ATMega328) hat Hardi den Speicher für Variablen auf 64 Byte begrenzt, was wiederum 64*8/2 = 256 Variablen maximal bedeutet. Einige Variablen sind vordefiniert, womit 250 freie Variablen übrigbleiben.
Daher ist in weiterer Folge die Variablennummer in der gesamten Bibliothek mit einem Byte definiert.

Um das zu Erweitern muss statt eines Byte (0..255) ein Word (0...65535) verwendet werden, und das natürlich nur auf den Prozessoren mit mehr RAM (ESP, PICO), für den Nano muss alles beim Alten bleiben.

Es nun JEDE Makrodefinition, welche mit einer Variable arbeitet (also ca. 95%), angepasst und die dahinertliegende MobaLedLib Funktion überarbeitet werden . Einige Makros wie z.B. Logic sind dabei richtig aufwändig und benötigen zusätzlich Änderungen im ProgGenerator. Und dann noch so Sonderfunktionen wir Copy_Bits_to_InpStructArray.

Das wird richtig aufwändig - also bitte Freiwillige vor, die diese Änderung betreuen.

Jürgen...

hlinke Verified
MLL-TEAM
MLL-TEAM
Beiträge: 172
Registriert: Do 10. Apr 2025, 19:30
Wohnort: Trier
Hat sich bedankt: 158 mal
Wurde bedankt: 173 mal
Kontaktdaten:

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#6

Beitrag von hlinke Verified »

@jueff
da mich diese Einschränkung in der Weiterentwicklung der pyMLL auch stört, bin ich gerne bereit Dich bei der Umstellung zu unterstützen.

Viele Grüße
Harold

Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 250
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 521 mal
Wurde bedankt: 540 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#7

Beitrag von PeterVT11 Verified »

Hallo,

ich würde ja gerne mit helfen, doch stellt mich der Code von Hardi vor riesige Probleme. Ich hab den nach 4 Jahren noch nicht annähernd durchschaut. Hardi wollte ja mal sein Code in einem Spezial-Stammtisch vorstellen, leider ist es bei der Ankündigung geblieben. :(

Wenn ich allerdings daran denke, dass das über (als Beispiel aus der Vergangenheit)

Code: Alles auswählen

#ifdef LONG_LED_ADDR
           uint16_t LED_Nr        = pgm_read_word_near(&p->LED_Nr);
#else
           uint8_t LED_Nr         = pgm_read_byte_near(&p->LED_Nr);
#endif
geschieht, wird es meiner Meinung nach sehr unübersichtlich (angesichts der vielen Korrekturen). Ich denke, es muss eine andere Lösung her.

Viele Grüße Peter

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

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#8

Beitrag von jueff Verified »

Hallo Zusammen,

es hat wirklich gedauert, bis ich zu dem Thema etwas bewegen konnte, weil es auch nicht so ganz so einfach zu lösen ist.
@PeterVT11 muss ich leider enttäuschen, auch die Erweiterung der Anzahl der Variablen von 1 Byte auf 2 Byte Adressierung wird wieder über Präprozessor-Direktiven (Makros) passieren. Bei Präprozessor-Direktiven gibt es nur weiss oder schwarz, entweder man liebt sie oder man hasst sie. Meine Liebe zu den Makros war nie extrem groß, und gerade in den letzten Tagen der vielen Makro-Änderungen ist sie etwas verblasst. Wenn man die Logik einmal verstanden hat sind sie wirklich 8-)

Die Herausforderung ist, dass der ProgrammGenerator, Codebeispiele etc. weiterhin ohne Änderung kompilierbar sind, auf allen drei Plattformen. Das ließe sich leichter lösen, wenn man auf den Nano keine Rücksicht nimmt und generelle alles in 2 Byte Adressierung macht. Nur das überfordert die Nano Plattform.
Ich habe einen Git-Branch namens "longInpAddresses" angelegt (https://github.com/Hardi-St/MobaLedLib/ ... pAddresses), in dem meine bisherigen Änderungen eingeflossen sind. Dieser ist hier als Zip zum Downloaden https://github.com/Hardi-St/MobaLedLib/ ... resses.zip.
Zum Update das Zip downloaden und ins Verzeichnis ...\library\MobaLedLib extrahieren, dann in library\MobaLedLib\extras den ProgGenerator.xlsm öffnen.

Herzstück der Lösung ist das Makro _ChkIn(In), welches schon bisher dazu verwendet wurde, den Wertebereich einer Variablen zu prüfen. Das Marko habe ich so geändert, dass entweder im 1-Byte modus arbeitet mit max. 255 Variablen, oder im 2-Byte Modus mit derzeit 2047 Variablen (einfach erweiterbar, braucht nur RAM).
Gesteuert wird das durch den define LONG_INP_ADDR. Dieser wird bei den Plattformen ESP32 und PICO gesetzt.

Die Änderungen im C Source Code, insbesondere bei den Makros, sind umfangreich. Das tolle ist, dass der ProgGenerator bis auf eine Variablendeklaration (inch_t statt uint8_t) unverändert bleibt.

Leider wurde _ChkIn() nicht bei allen Makros durchgängig verwendet. Hier hieß es nacharbeiten. Ich habe jede Menge Makros überarbeitet und den zugehörigen Makro-Code fit für 2-Byte Adressierung gemacht.
Die Änderung hatte auch Auswirkung auf das Verspeichern der Zustände, die Logik-Befehle, die Onboard-Sound Module usw. usw. usw.

Einige Konfigurationen habe ich bereits getestet und schon viele Fehler behoben.
Nun ist es soweit, diesen Stand einer größeren Testergruppe zu präsentieren.
Gerne lade ich alle Interessierten dazu ein, die Änderungen ausgiebig zu testen, am schönsten wäre es, auf allen drei Plattformen zu testen. Es zählt aber JEDER Test ist wichtig, auch wenn er z.B. nur bestätigt, dass auf dem Nano noch alles wie bisher funktioniert.

Also ran an die Tasten, lasst die LEDs glühen. :crazy:

Jürgen...

Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 250
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 521 mal
Wurde bedankt: 540 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#9

Beitrag von PeterVT11 Verified »

Hallo Jürgen,

erst mal vielen Dank für Deine Mühe. Ich bin nicht böse, dass die Lösung anders geht, als ich mir gedacht hatte. Da fehlt mir einfach das Wissen, was da im Code (besonders das Macro-Zeug ;) ) so passiert.

Ich hab mal mit dem Beispiel von Bernd (@EP2Bernie ) getestet und da tritt leider der Fehler wieder auf.
250Var_1.png
Mache ich da was falsch? Ich hab das PGF mal angehängt. Ausgewählt war der ESP32.
Dateianhänge
250Variablen.MLL_pgf
(33.49 KiB) 9-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: 75
Registriert: Fr 18. Apr 2025, 07:25
Wohnort: Hallein/AT
Hat sich bedankt: 51 mal
Wurde bedankt: 265 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#10

Beitrag von jueff Verified »

Das habe ich übersehen zu ändern.
Bitte im ProgGenerator ALT+F11, Datei M06_WriteHeader öffnen und in der Funktion

Private Function Write_Header_File_and_Upload_to_Arduino(...)

die Zeile 1505 von
If Channel - 1 > 250 Then
auf
If Channel - 1 > 4091 Then
ändern.


Die Plattformabhängige Prüfung des Maximalwert kommt noch nach.

Danke, Jürgen...

Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 250
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 521 mal
Wurde bedankt: 540 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#11

Beitrag von PeterVT11 Verified »

Hallo Jürgen,

ja es geht jetzt weiter. Leider fällt P_Schedule jetzt auf die Nase :( . Ich hab die Zeilen gegen den normalen Schedule ausgetauscht und dann neu zum ESP übertragen wollen. Leider kommen viele Fehlermeldungen (siehe 350B3_longInp_Fehler.txt).
Dateianhänge
350B3_longInp_Fehler.txt
(347.46 KiB) 10-mal heruntergeladen
250Variablen_V2.MLL_pgf
(33.89 KiB) 7-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: 75
Registriert: Fr 18. Apr 2025, 07:25
Wohnort: Hallein/AT
Hat sich bedankt: 51 mal
Wurde bedankt: 265 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#12

Beitrag von jueff Verified »

Die Version 3.5.0.LongImp-2 ist im Git verfügbar, diese ist schon viel besser. Gleicher Link wie zuvor.
Anbei auch eine geänderte P_ScheduleMLX.

Zu P_Schedule: Diese verwendet die Library Funktion Set_Input(uint8_t Variable). Bisher war Variable vom Datentype uint_8 (0...255), nun ist es abhängig von der Plattform entweder uint_8 oder uint_16 (0..65535). Diese Anpassung geschieht automatisch durch die Verwendung des inch_t Makros. Dort wo es notwending war habe ich uint8_t durch inch_t ersetzt.

Jürgen...
Dateianhänge
P_ScheduleMLX.zip
(16.44 KiB) 10-mal heruntergeladen

Eckhart Verified
Novize des Beleuchters
Beiträge: 250
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 227 mal
Wurde bedankt: 246 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#13

Beitrag von Eckhart Verified »

Hallo Jürgen!

Sehr schöne Arbeit! (auch wenn ich überhaupt kein Freund der Präprozessorlösung bin...)

Bislang habe ich nur einen Fehler gefunden, und zwar hier:
jueff hat geschrieben: Di 25. Nov 2025, 23:17
Die Änderung hatte auch Auswirkung auf das Verspeichern der Zustände...
Der Prototyp ist dieser:

#if _USE_STORE_STATUS // 19.05.20: Juergen
typedef void(*Callback_t) (uint8_t CallbackType, uint8_t ValueId, uint8_t OldValue, uint8_t* NewValue);
#endif

Der Aufruf jener:

#if _USE_STORE_STATUS // 19.05.20: Juergen
void MobaLedLib_C::Do_Callback(uint8_t CallbackType, inch_t ValueId, uint8_t OldValue, uint8_t *NewValue) <--- hier ist es noch richtig!!!
{
//Dprintf("Do_Callback CallbackType %d ValueId %i OldValue %i NewValue %i\n", CallbackType, ValueId, OldValue, *NewValue);
if (CallbackFunc!=NULL) CallbackFunc(CallbackType, ValueId, OldValue, NewValue); <--- ab hier falsch
}
#endif

Denn es kommt hier heraus:

//------------------------------------------------------------------------------------------
void On_Callback(uint8_t CallbackType, uint8_t ValueId, uint8_t OldValue, uint8_t *NewValue)
//------------------------------------------------------------------------------------------
{
if ( (CallbackType == CT_CHANNEL_CHANGED && ((OldValue > 0) != (*NewValue > 0)))
|| (CallbackType == CT_COUNTER_CHANGED && (OldValue != *NewValue))
|| CallbackType == CT_COUNTER_INITIAL)
{
#if defined(DEBUG_STORE_STATUS) && 1
if (CallbackType == CT_CHANNEL_CHANGED)
{ char s[80]; sprintf(s, "On_Value_Changed: channel %d changed from %d to %d", ValueId, OldValue, *NewValue); Serial.println(s); Serial.flush();} // Debug
else if (CallbackType == CT_COUNTER_CHANGED)
{ char s[80]; sprintf(s, "On_Value_Changed: counter %d changed from %d to %d", ValueId, OldValue, *NewValue); Serial.println(s); Serial.flush();} // Debug
#endif
ForAllStoreValues(CallbackType, ValueId, NewValue, Handle_Callback);
#if defined(DEBUG_STORE_STATUS) && 1
if (CallbackType == CT_COUNTER_INITIAL)
{
char s[80]; sprintf(s, "On_Counter_Init: counter %d set to %d", ValueId, *NewValue); Serial.println(s);
} // Debug
#endif
}
};

bzw. hier:

//-----------------------------------------------------------------------------------------------
void ForAllStoreValues(uint8_t ValueType, uint8_t ValueId, uint8_t* Value, HandleValue_t handler)
//-----------------------------------------------------------------------------------------------
{
uint16_t EEPromAddr = EEPROM_START;
uint16_t tmp;
for (const uint8_t *p = (const uint8_t*)Store_Values, *e = p + sizeof(Store_Values); p < e; )
{
tmp = pgm_read_word_near(p); p += 2;
if (handler(ValueType, ValueId, Value, EEPromAddr, tmp>>8, tmp)) break;
EEPromAddr++;
}
}

Was passiert? "ValueID" ist (fast, bis auf den Einstieg) überall nur 8 Bit und beim Speichen von Zuständen von InCh's über 255 überpatcht man mit höheren Zuständen niedrigere.

Gruß, Eckhart

Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 250
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 521 mal
Wurde bedankt: 540 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#14

Beitrag von PeterVT11 Verified »

Hallo Jürgen,

vielen Dank für die Anpassung meiner P_Schedule. Ich hab hier mal meine neue Version rein gestellt. Da ist noch ein kleines Problem drin, das ich aber derzeit umgangen habe.
Beim Test mit Bernd's PGF-Datei habe ich festgestellt. dass nach dem Reset des ESP auf Kanal 2 viele LED's für ca. 2-3 Sekunden angehen.
IMG_3992.jpeg
Ferner hab ich bei mir (meine produktive Konfiguration) dass die Pushbutton-Funktionen nicht gehen und der Random eine Exception auslösen.

Code: Alles auswählen

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
Guru Meditation Error: Core  1 panic'ed (IntegerDivideByZero). Exception was unhandled.
Core 1 register dump:
PC      : 0x400d45ac  PS      : 0x00060530  A0      : 0x800d6589  A1      : 0x3ffb1ea0  
A2      : 0x3ffb8670  A3      : 0x3ffc03bd  A4      : 0x00000006  A5      : 0x00000098  
A6      : 0x00000000  A7      : 0x00000000  A8      : 0x00000013  A9      : 0x3f4018b7  
A10     : 0x0000000a  A11     : 0x000007fe  A12     : 0x00000f02  A13     : 0x0000008c  
A14     : 0x00000000  A15     : 0x3ffb8670  SAR     : 0x00000000  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x40081058  LEND    : 0x40081068  LCOUNT  : 0x00000000  

Backtrace: 0x400d45ac:0x3ffb1ea0 0x400d6586:0x3ffb1f30 0x400d65d5:0x3ffb1f50 0x400d3159:0x3ffb1f70 0x400da66b:0x3ffb1fb0 0x40089fad:0x3ffb1fd0

Rebooting...
Dateianhänge
P_ScheduleMLX.zip
(306.29 KiB) 5-mal heruntergeladen

Viele Grüße Peter

Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
Eckhart Verified
Novize des Beleuchters
Beiträge: 250
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 227 mal
Wurde bedankt: 246 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#15

Beitrag von Eckhart Verified »

Hallo Peter!
PeterVT11 hat geschrieben: Do 27. Nov 2025, 17:53
Beim Test mit Bernd's PGF-Datei habe ich festgestellt. dass nach dem Reset des ESP auf Kanal 2 viele LED's für ca. 2-3 Sekunden angehen.
Ist das, wenn du ENABLE_STORE_STATUS rausnimmst, auch der Fall?

Gruß, Eckhart

Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 250
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 521 mal
Wurde bedankt: 540 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#16

Beitrag von PeterVT11 Verified »

Hallo Eckhart,

ja, der ENABLE_STORE_STATUS ist nicht aktiv.

Viele Grüße Peter

Märklin C-Gleis, Märklin CS3, WinDigipet, Analog und Digital
Eckhart Verified
Novize des Beleuchters
Beiträge: 250
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 227 mal
Wurde bedankt: 246 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#17

Beitrag von Eckhart Verified »

Hallo Peter!
PeterVT11 hat geschrieben: Do 27. Nov 2025, 19:53
Hallo Eckhart,

ja, der ENABLE_STORE_STATUS ist nicht aktiv.
Schade! ...dann ist das noch ein weiterer Fehler und nicht zurückzuführen auf das von mir schon gefundene Problem mit dem Status-Speichern. Wäre ja auch zu einfach gewesen.

Gruß, Eckhart

Eckhart Verified
Novize des Beleuchters
Beiträge: 250
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 227 mal
Wurde bedankt: 246 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#18

Beitrag von Eckhart Verified »

Hallo Jürgen!

Der von Peter gemeldete Fehler:
PeterVT11 hat geschrieben: Do 27. Nov 2025, 17:53
Hallo Jürgen,

...und der Random eine Exception auslösen.

Code: Alles auswählen

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
Guru Meditation Error: Core  1 panic'ed (IntegerDivideByZero). Exception was unhandled.
Core 1 register dump:
PC      : 0x400d45ac  PS      : 0x00060530  A0      : 0x800d6589  A1      : 0x3ffb1ea0  
A2      : 0x3ffb8670  A3      : 0x3ffc03bd  A4      : 0x00000006  A5      : 0x00000098  
A6      : 0x00000000  A7      : 0x00000000  A8      : 0x00000013  A9      : 0x3f4018b7  
A10     : 0x0000000a  A11     : 0x000007fe  A12     : 0x00000f02  A13     : 0x0000008c  
A14     : 0x00000000  A15     : 0x3ffb8670  SAR     : 0x00000000  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x40081058  LEND    : 0x40081068  LCOUNT  : 0x00000000  

Backtrace: 0x400d45ac:0x3ffb1ea0 0x400d6586:0x3ffb1f30 0x400d65d5:0x3ffb1f50 0x400d3159:0x3ffb1f70 0x400da66b:0x3ffb1fb0 0x40089fad:0x3ffb1fd0

Rebooting...

ist imho dieser hier im File IntDefs.h

#define P_RANDOM_DSTVAR 0
#define P_RANDOM_INP (P_INPCHANEL_NO_CM+ADD_INCH_OFFSET) // 1
#define P_RANDOM_MODE (2+ADD_INCH_OFFSET) <------ dieses hier usw.
#define P_RANDOM_MINTIME_L (3+ADD_INCH_OFFSET)
#define P_RANDOM_MINTIME_H (4+ADD_INCH_OFFSET)
#define P_RANDOM_MAXTIME_L (5+ADD_INCH_OFFSET) // must be direct after P_RANDOM_MINTIME_H
#define P_RANDOM_MAXTIME_H (6+ADD_INCH_OFFSET)
#define P_RANDOM_MINON_L (7+ADD_INCH_OFFSET)
#define P_RANDOM_MINON_H (8+ADD_INCH_OFFSET)
#define P_RANDOM_MAXON_L (9+ADD_INCH_OFFSET) // must be direct after P_RANDOM_MINON_H
#define P_RANDOM_MAXON_H (10+ADD_INCH_OFFSET)
#define EP_RANDOM_INCREMENT (11+ADD_INCH_OFFSET) // Insert additional parameters before


Hier sind P_RANDOM_DSTVAR und P_RANDOM_INP beide 16 Bit Input Channels; also muss man ADD_INCH_OFFSET überall dahinter zwei Mal hinzurechen!

So wäre es imho richtig:

#define P_RANDOM_DSTVAR 0
#define P_RANDOM_INP (P_INPCHANEL_NO_CM+ADD_INCH_OFFSET) // 1
#define P_RANDOM_MODE (2+2*ADD_INCH_OFFSET) <------ so usw. müsste es sein
#define P_RANDOM_MINTIME_L (3+2*ADD_INCH_OFFSET)
#define P_RANDOM_MINTIME_H (4+2*ADD_INCH_OFFSET)
#define P_RANDOM_MAXTIME_L (5+2*ADD_INCH_OFFSET) // must be direct after P_RANDOM_MINTIME_H
#define P_RANDOM_MAXTIME_H (6+2*ADD_INCH_OFFSET)
#define P_RANDOM_MINON_L (7+2*ADD_INCH_OFFSET)
#define P_RANDOM_MINON_H (8+2*ADD_INCH_OFFSET)
#define P_RANDOM_MAXON_L (9+2*ADD_INCH_OFFSET) // must be direct after P_RANDOM_MINON_H
#define P_RANDOM_MAXON_H (10+2*ADD_INCH_OFFSET)
#define EP_RANDOM_INCREMENT (11+2*ADD_INCH_OFFSET) // Insert additional parameters before


Gruß, Eckhart

Benutzeravatar
PeterVT11 Verified
MLL-TEAM
MLL-TEAM
Beiträge: 250
Registriert: Mi 9. Apr 2025, 21:21
Hat sich bedankt: 521 mal
Wurde bedankt: 540 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#19

Beitrag von PeterVT11 Verified »

Hallo Jürgen,

Ist das jetzt schon in der 3.5.0C drin ?
Da schreibst Du ja von plattformabhängiger Eingangszahlen.

Viele Grüße Peter

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

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#20

Beitrag von jueff Verified »

Hallo,Peter,

Nur die plattformabhängige Prüfung im ProgGenerator ist bereits vorhanden, aber mit Limit von 250 für alle Plattformen.
Die Library Änderungen sind nicht enthalten.

Jürgen…

Benutzeravatar
jueff Verified
MLL-TEAM
MLL-TEAM
Beiträge: 75
Registriert: Fr 18. Apr 2025, 07:25
Wohnort: Hallein/AT
Hat sich bedankt: 51 mal
Wurde bedankt: 265 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#21

Beitrag von jueff Verified »

PeterVT11 hat geschrieben: Do 27. Nov 2025, 17:53
Hallo Jürgen,
..Ferner hab ich bei mir (meine produktive Konfiguration) dass die Pushbutton-Funktionen nicht gehen und der Random eine Exception auslösen.
Hallo Peter,

das Random Problem ist bereits erkannt und gefixt.

Zu PushButton:
- Welche Plattform hat deine produktive Konfiguration?
- Ist STORE_STATUS ein?
- Welches PushButton Makro
- Was geht nicht - Zielvariable nicht gesetzt?


Ich habe den Fehler gefunden, eine neue Version ist verfügbar.

Danke für deine Unterstützung,
Jürgen....

Benutzeravatar
jueff Verified
MLL-TEAM
MLL-TEAM
Beiträge: 75
Registriert: Fr 18. Apr 2025, 07:25
Wohnort: Hallein/AT
Hat sich bedankt: 51 mal
Wurde bedankt: 265 mal

Re: Fehlermeldung nach der Erweiterung von Ausgängen

#22

Beitrag von jueff Verified »

PeterVT11 hat geschrieben: Do 27. Nov 2025, 17:53
Beim Test mit Bernd's PGF-Datei habe ich festgestellt. dass nach dem Reset des ESP auf Kanal 2 viele LED's für ca. 2-3 Sekunden angehen.
Hallo Peter,

das ist so korrekt, wenn ich es richtig sehe werden damit die Relais der Herzstückpolarisation initialisiert.
Passiert gleich mit kurzer und lager Input-Adressierung.

Jürgen...

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag

Zurück zu „Bugs und offene Punkte“