INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino kann nicht rechnen?!
15.12.2015, 20:46
Beitrag #9
RE: Arduino kann nicht rechnen?!
(14.12.2015 21:11)amithlon schrieb:  (...)
Serial.print(c = (a * 100L)/b);
Damit wird das Zwischenergebnis als Long-Variable berechnet
(...)
Gruß aus Berlin
Michael

Hey!
Diese Variante kannte ich noch garnicht!
Hab bisher, wenn sowas war, entweder die einfliessenden Variablen alle auf den benötigten Datenbereich angemeldet (was natürlich Speicher verbraucht) oder die Berechnung so formuliert, das ich nicht zu groß werde.
Wo findet man solche Tips?
Gibt's neben der Referenz noch eine andere Quelle?

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.12.2015, 21:51
Beitrag #10
RE: Arduino kann nicht rechnen?!
(15.12.2015 20:46)Binatone schrieb:  Hey!
Diese Variante kannte ich noch garnicht!
Hab bisher, wenn sowas war, entweder die einfliessenden Variablen alle auf den benötigten Datenbereich angemeldet (was natürlich Speicher verbraucht) oder die Berechnung so formuliert, das ich nicht zu groß werde.
Wo findet man solche Tips?
Gibt's neben der Referenz noch eine andere Quelle?

Irgendwo in den C Grundlagen, ich hoffe mal, ich habe es richtig hingeschrieben.
Üblich auch eine explizite Typwand
Serial.print(c = (a * (long)100)/b);

oder nach float einfach
Serial.print(c = (a * 100.0)/b);

Notfalls mal durchspielen, bin eigentlich nicht der C-Profi, AVR-ASM ist mir meist lieber, neuerdings habe ich aus Faulheit die Arduinos für mich entdeckt.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.12.2015, 15:39
Beitrag #11
RE: Arduino kann nicht rechnen?!
(15.12.2015 21:51)amithlon schrieb:  Üblich auch eine explizite Typwand
Serial.print(c = (a * (long)100)/b);

oder nach float einfach
Serial.print(c = (a * 100.0)/b);


Gruß aus Berlin
Michael


Ja, diese beiden Varianten kannte ich bereits.
Aber mehr in dieser Form:

Float z = 12.3;

INT X = float2int(int2float(123)*z);

Oder so ähnlich, viele Klammern hin und her, darum umständlich!
(SecondLife Scriptsprache, ähnlich C)

Besten Gruß
Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.12.2015, 16:26
Beitrag #12
RE: Arduino kann nicht rechnen?!
Hallo,

(16.12.2015 15:39)Binatone schrieb:  Aber mehr in dieser Form:

Float z = 12.3;

INT X = float2int(int2float(123)*z);

Oder so ähnlich, viele Klammern hin und her, darum umständlich!
(SecondLife Scriptsprache, ähnlich C)

Besten Gruß
Binatone

Da werden ja offenbar Funktionen aufgerufen, die machen intern wahrscheinlich noch Prüfungen des Wertebereiches.

Es gibt bei C ja feste Regeln, wie Typ-Castings ausgeführt werden. Da muß man eben zur Not nachsuchen, ob der Compiler das erwartungs gemäß macht.

PS: ich glaube, ich muß noch einen Weihnachtsstern zusammelöten...
19x WS2812B und ein Arduino ProMini mit dem Demo der FastLED-Lib sieht wirklich gut aus. Smile

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  mi Stundenwert aus DS3231 rechnen u. einfrieren... alpenpower 2 48 Gestern 14:44
Letzter Beitrag: Tommy56
Lightbulb Wie kann ich Daten vom Nextion Display auf Arduino Mega2560 senden und benutzen MarkusA 14 784 02.11.2017 23:10
Letzter Beitrag: MarkusA
Sad Nano - nicht genug Speicher torsten_156 10 502 30.10.2017 21:40
Letzter Beitrag: MicroBahner
  Frage zu STM32F1xx / Was kann ich bei dieser Fehlermeldung machen? Holzwurm56 37 1.634 04.09.2017 14:14
Letzter Beitrag: Holzwurm56
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 409 22.08.2017 15:17
Letzter Beitrag: Tommy56
  Kann man auf den internen Speicher zugreifen? Maxi290997 11 811 18.08.2017 19:51
Letzter Beitrag: hotsystems
  BME280 - Luftdruckoffset nicht einstellbar ? Stargazer 17 1.144 13.08.2017 15:38
Letzter Beitrag: hotsystems
  Ich komme mit millis nicht weiter !!! Gonmaus 8 839 09.07.2017 21:24
Letzter Beitrag: Tommy56
  WEMOS Motorshield funzt nicht Rumpl-X 8 681 07.06.2017 21:10
Letzter Beitrag: Tommy56
  LCD geht nicht - keine Ahnung warum?? DL1AKP 12 934 15.05.2017 13:17
Letzter Beitrag: DL1AKP

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste