Go Down

Topic: Zeitangabe L (Read 1 time) previous topic - next topic

User_ino

Hallo,

habe eine Code im Internet für Steuerung einer Modelleisenbahn gefunden. Jedoch sind mir die Angaben für die Geschwindigkeit und die Zeit nicht klar. Kann mir da jemand bitte weiterhelfen?

Code
Code: [Select]
const word        SPEED = 100;
const long int    TIME =  9.48L*60L*1000L;   


Was sagt mir die Eingabe 100 für die Geschwindigkeit und was bedeutet L bei Zeitangabe?


Danke

Serenifly

#1
Jan 15, 2015, 12:41 pm Last Edit: Jan 15, 2015, 01:04 pm by Serenifly
L = long

Das ist nötig weil die Zahlen sonst standardmäßig int sind es es damit zu einem Überlauf käme. Es muss aber nur eine der Zahlen long sein.

9.48L machst allerdings keinen Sinn. Das ist ein Gleitkommazahl. Da macht er dann wahrscheinlich 9 draus

User_ino

Und warum steht bei 60 und 1000 ein L. Dachte 60 hätte was mit einer Minute zu tun.

Die Geschwindigkeit von 100 hat dann was mit PWM zu tun?

Serenifly

Habe ich doch gesagt. Damit das Literal als long interpretiert wird. Und nicht als int. Integer Literale sind standardmäßig int und int * int = int. Und ein int hat nur einen Wertbereich von +/- 15 Bit

Wenn man Warnungen aktiviert bekommt man das sogar mit:
Code: [Select]

ArduinoTest.ino:18:26: warning: integer overflow in expression [-Woverflow]
:const long test = 600 * 1000;


Das mit dem 9.48L habe ich mal getestet. Da wird wohl das L ignoriert und er rechnet dann doch mit 9.48


Quote
Die Geschwindigkeit von 100 hat dann was mit PWM zu tun?
Das ist wieder so eine Glaskugel Frage. Wieso soll man das aus diesen zwei Zeilen herleiten können?

uwefed

Quote
Die Geschwindigkeit von 100 hat dann was mit PWM zu tun?
Das ist wieder so eine Glaskugel Frage. Wieso soll man das aus diesen zwei Zeilen herleiten können?
Mit dem Sketch und besser noch auch mit dem Schaltplan können wir das sicher beantworten.
Grüße Uwe

User_ino

Hatte nur gefragt, weil ich festgestellt habe, dass die Geschwindigkeit
Code: [Select]
Speed 100 genauso schnell wie die Geschwindigkeit
Code: [Select]
Speed 55 ist. Bei 50 fährt die Bahn dann aber deutlich langsamer.

User_ino


Benutze den CAN BUS Controller aus diesem Video.

https://www.youtube.com/watch?v=RnU9YFDxkqg

Mir ist aufgefallen, dass die Geschwindigkeiten zwischen 51 und 100 gleich sind.  50 ist langsam, erhöhe ich auf 55, fährt die Bahn da schon genauso schnell wie bei 100. Erhöhe ich auf 110 fährt die Bahn genauso schnell wie bei 150.  Kennt sich schon jemand damit aus?

michael_x

Fragst du Jörg Pleumann.  (oder Märklin oder youtube) ;)
 
Das beste in deinem video ist der link im Kommentar:
https://code.google.com/p/railuino/downloads/detail?name=railuino-0.9.zip

Da ist ein Haufen Kram drin. Hab aber kein "Maerklin for Arduino Dummies in 5 Steps" gefunden.
Wie soll hier jemand raten was du machst ?

Ausserdem ist "Zeitangabe L" beantwortet, oder ?

Go Up