Rainer Hönle
Level-3
- Beiträge
- 5.748
- Reaktionspunkte
- 1.025
-> Hier kostenlos registrieren
Also so läuft es nun:
L DBD [AR1,P#4.0] // hole Ziel-Geschw.
L 100
/R
L #Override
*R
T #Geschwindigkeit // und zurückgeben
Wie vermutet ist ein Problem die Zahlenformatverwürfelung. L 100 lädt eine GANZZAHL in den Akku1, /R erwaretet Realzahlen in den Akkus. Das kann so nicht funktionieren! In welchen Format liegt denn [AR1,P#4.0] wirklich vor? In welchem Format liegt den #Override vor? Wenn beides Realzahlen sind, dann genügt die Änderung in L 100.0, damit es funktioniert. Ansonsten schlage ich folgende Vorgehensweise bei Vorliegen von DInts vor:
Code:
L 20000000 // Hier gibt es sicher noch keinen Überlauf bei Multiplikation mit 100
L DBD [AR1,P#4.0] // hole Ziel-Geschw.
>D
SPB MULT
L 100 // Ziel-Geschw. noch in Akku1
/D
L #Override
*D
T #Geschwindigkeit // und zurückgeben
SPA Ende
MULT: L #Override // Ziel-Geschw. noch in Akku1
*D
L 100
/D
T #Geschwindigkeit // und zurückgeben
ENDE: NOP 0
Diese Lösung kommt jetzt komplett ohne die Wandlung in Reals aus und berücksichtigt den Wertebereich einer DInt