Seite 1 von 1
Hilfe Bei RoboPro
Verfasst: 22 Apr 2016, 18:10
von LarsKusch
Liebe Community,
heute habe ich einen Taschenrechner programmiert,
wollte ihn ausführen doch es kam folgende Meldung:
"Der Stack ist zu klein. Versuche die Stackgröße im Eigentschaftsfenster des Hauptprogrammes zu vergrößern!"
Was muss ich da machen? Oder ist mein Programm zu groß?
Mein Programm:
https://onedrive.live.com/redir?resid=C ... file%2crpp
Liebe Grüße,
Lars
Re: Hilfe Bei RoboPro
Verfasst: 22 Apr 2016, 18:24
von MasterOfGizmo
Heisst das, dass dein txt wieder heil ist? Wie hat das geklappt?
Re: Hilfe Bei RoboPro
Verfasst: 22 Apr 2016, 21:59
von LarsKusch
Nein noch nicht er ist momentan noch bei ft!

deshalb lasse ich das Programm im Simulations Modus laufen!
Re: Hilfe Bei RoboPro
Verfasst: 24 Apr 2016, 17:33
von Dirk Fox
Hallo Lars,
warum steht in Deinem Hauptprogramm unter "Eigenschaften" die "Gruppe" 1?
Lösche einmal den Eintrag, und setz' auch die Zahl der zusätzlichen Prozesse auf 0.
Auch die Werte für den Mindestspeicher pro Prozess erscheinen mir deutlich zu groß - ersetze sie einmal durch die Werte in den Eigenschaften Deiner Unterprogramme, das müsste locker reichen.
Beste Grüße,
Dirk
Re: Hilfe Bei RoboPro
Verfasst: 25 Apr 2016, 13:40
von LarsKusch
Lieber Dirk,
leider haben die Änderungen am Arbeitsspeicher sowohl im Online- als auch im Offlinemodus überhauptnichts gebracht, sowie auch an der Gruppe!
(Wofür sind diese Gruppen überhaupt?)
Oder soll ich das Programm mal an Fischertechnik senden?
Erstaunte Grüße,
Lars
Re: Hilfe Bei RoboPro
Verfasst: 28 Apr 2016, 16:12
von LarsKusch
Verschiebt irgendwer den Thread in den Fischertechnik-Direkt-Bereich, da können es sich dann mal die Enntwickeler anschauen und mir sagen was ich falsch gemacht habe oder ob die Software Fehler macht?!
Re: Hilfe Bei RoboPro
Verfasst: 28 Apr 2016, 20:29
von hamlet
Hi Lars,
Der Fehler ist in der Funktion "Be_Rechnen 4". Darin am Datenausgang der Funktion "Auswertung Rechenzeichen 2" hängt zweimal die globale und "namensgebundene Variable "Zwischenwert_Nachzahl". Damit hast Du eine schicke Endlosschleife gebaut: Jede Änderung des Wertes bewirkt eine Aktualisierung des Variablenausgangs und damit wieder eine Änderung des Wertes, da ja die gleiche Variable am Ausgang hängt. Das Problem kann man ganz einfach reproduzieren: Ein Hauptprogramm mit zwei Instanzen ein und derselben globalen und namensgebundenen Variablen verbunden durch einen gelben Datenpfad, dazu ein grünes und rotes direkt verbundenes Ampelmänchen => Stack Overflow. RoboPro sollte so etwas eigentlich erkennen können.
Fehlersuchstrategie: "Teile und herrsche": Ich habe die Funktionen Deines Programms eine nach der anderen in ein leeres Hauptprogramm gezogen und dieses dann gestartet bis es dann endlich knallte. Die Reihenfolge sollte dabei so gewählt werde, dass nicht mit einer Funktion weitere noch nicht getestete Funktionen mit reingezogen werden. Also, sollte man mit den untergeordneten Funktionen, die keine weiteren Funktionsaufrufe enthalten, beginnen. Die Funktionen mit dem Fehler dann zerstückeln, bzw. temporär Teile entfernen, bis man den Fehler lokalisiert hat.
Beste Grüße,
Helmut
Re: Hilfe Bei RoboPro
Verfasst: 28 Apr 2016, 20:51
von jona2004
Hallo Lars,
Hamlet hat ja schon den Hauptpunkt gemacht. Es ist aber nochwas generell gefährlich. Wenn eine Taste gedrückt wird, weist Du dieser eine Gleitkommazahl als Code zu. Diesen Code wertest Du z.B. mit <>10.0 aus. Da Gleitkommazahlen im binären Zahlensystem nicht immer 100% genau dargestellt werden können, kann der harmlos aussehende Vergleich daneben gehen. Also Grundregel Gleitkommazahlen nie auf gleich oder ungleich abfragen. Siehe auch Kapitel 13.1 der RoboPro Hilfe.
Grüße Joachim
Re: Hilfe Bei RoboPro
Verfasst: 30 Apr 2016, 06:27
von LarsKusch
Lieber Jona,
jona2004 hat geschrieben:Da Gleitkommazahlen im binären Zahlensystem nicht immer 100% genau dargestellt werden können, kann der harmlos aussehende Vergleich daneben gehen. Also Grundregel Gleitkommazahlen nie auf gleich oder ungleich abfragen.
Aber wie soll ich sonst abfragen ob mein Wert passt da ich ich ja von -9 -17 alles habe?
Fragende Grüße,
Lars
Re: Hilfe Bei RoboPro
Verfasst: 30 Apr 2016, 08:11
von Cymbaline
LarsKusch hat geschrieben:Lieber Jona,
jona2004 hat geschrieben:Da Gleitkommazahlen im binären Zahlensystem nicht immer 100% genau dargestellt werden können, kann der harmlos aussehende Vergleich daneben gehen. Also Grundregel Gleitkommazahlen nie auf gleich oder ungleich abfragen.
Aber wie soll ich sonst abfragen ob mein Wert passt da ich ich ja von -9 -17 alles habe?
Fragende Grüße,
Lars
Hallo Lars,
Statt
kannst du besser
oder sowas ähnliches nutzen.
Grüße,
Wilbert.
Re: Hilfe Bei RoboPro
Verfasst: 30 Apr 2016, 08:43
von LarsKusch
Vielen Dank Wilbert,
damit werde ich es gleich testen!
Liebe Grüße
Lars
Re: Hilfe Bei RoboPro
Verfasst: 01 Mai 2016, 22:47
von jona2004
Hallo Lars,
In den Routinen "Auswertung Rechenzeichen" und "Auswertung Zahlen" weist Du jeder Taste einen Code zu z.B. dem '+' Zeichen die 10.0. .
Wenn Du diese Zahl später vergleichst (wenn Du addieren willst) kannst Du mit dem Vergleich reinfallen. Würdest Du eine Ganzzahl (Integer) zuweisen, kannst Du immer sauber vergleichen.
Da Du ja auch schon mit python und dem TXT arbeitest

, schau Dir mal den Code an auf dem die kleine Calculator Apps da basiert.
http://thecodeinn.blogspot.de/2013/07/t ... lator.html
Vor einiger Zeit war in ft:pedia mal ein Artikel über die Programmierung von Zustandsmaschinen in RoboPro.
Wenn Du nun beides kombinierst, kriegst Du eine schöne Lösung.
Grüße Joachim
Re: Hilfe Bei RoboPro
Verfasst: 02 Mai 2016, 20:27
von LarsKusch
Vielen Dank jetzt funktioniert es!
Vielen vielen Dank
Dankend Grüße,
Lars
Re: Hilfe Bei RoboPro
Verfasst: 02 Mai 2016, 20:49
von MasterOfGizmo
Genau diesen Caclulator habe ich neulich auf den TXT portiert:
https://github.com/ftCommunity/ftcommun ... lc/calc.py