Hilfe Bei RoboPro

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Hilfe Bei RoboPro

Beitrag von LarsKusch » 22 Apr 2016, 18:10

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
Zuletzt geändert von LarsKusch am 23 Apr 2016, 08:16, insgesamt 1-mal geändert.

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Hilfe Bei RoboPro

Beitrag von MasterOfGizmo » 22 Apr 2016, 18:24

Heisst das, dass dein txt wieder heil ist? Wie hat das geklappt?
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Re: Hilfe Bei RoboPro

Beitrag von LarsKusch » 22 Apr 2016, 21:59

Nein noch nicht er ist momentan noch bei ft! :( deshalb lasse ich das Programm im Simulations Modus laufen!

Benutzeravatar
Dirk Fox
ft:pedia-Herausgeber
Beiträge: 1833
Registriert: 01 Nov 2010, 00:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: Hilfe Bei RoboPro

Beitrag von Dirk Fox » 24 Apr 2016, 17:33

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

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Re: Hilfe Bei RoboPro

Beitrag von LarsKusch » 25 Apr 2016, 13:40

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

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Re: Hilfe Bei RoboPro

Beitrag von LarsKusch » 28 Apr 2016, 16:12

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?!

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: Hilfe Bei RoboPro

Beitrag von hamlet » 28 Apr 2016, 20:29

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

jona2004
Beiträge: 149
Registriert: 10 Jun 2011, 22:30

Re: Hilfe Bei RoboPro

Beitrag von jona2004 » 28 Apr 2016, 20:51

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

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Re: Hilfe Bei RoboPro

Beitrag von LarsKusch » 30 Apr 2016, 06:27

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

Cymbaline
Beiträge: 66
Registriert: 01 Nov 2010, 07:28
Wohnort: Reuver, NL

Re: Hilfe Bei RoboPro

Beitrag von Cymbaline » 30 Apr 2016, 08:11

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

Code: Alles auswählen

a <> 10.0

kannst du besser

Code: Alles auswählen

a < 9.99 OR a > 10.01
oder sowas ähnliches nutzen.

Grüße,
Wilbert.
Het leven is hard. Een kokosnoot ook.

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Re: Hilfe Bei RoboPro

Beitrag von LarsKusch » 30 Apr 2016, 08:43

Vielen Dank Wilbert,
damit werde ich es gleich testen!
Liebe Grüße
Lars

jona2004
Beiträge: 149
Registriert: 10 Jun 2011, 22:30

Re: Hilfe Bei RoboPro

Beitrag von jona2004 » 01 Mai 2016, 22:47

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 :o , 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

LarsKusch
Beiträge: 54
Registriert: 21 Apr 2015, 19:03
Wohnort: Oberfranken
Kontaktdaten:

Re: Hilfe Bei RoboPro

Beitrag von LarsKusch » 02 Mai 2016, 20:27

Vielen Dank jetzt funktioniert es!
Vielen vielen Dank :D
Dankend Grüße,
Lars

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Hilfe Bei RoboPro

Beitrag von MasterOfGizmo » 02 Mai 2016, 20:49

jona2004 hat geschrieben: Da Du ja auch schon mit python und dem TXT arbeitest :o , schau Dir mal den Code an auf dem die kleine Calculator Apps da basiert.
http://thecodeinn.blogspot.de/2013/07/t ... lator.html
Genau diesen Caclulator habe ich neulich auf den TXT portiert:
https://github.com/ftCommunity/ftcommun ... lc/calc.py
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Antworten