Ich will eine Zahl (PI nur als Beispiel aber ähnlich) in ihre einzelnen Ziffern zerlegen. Bis z5 läuft alles wunschgemäß. z6 gibt mir 74 aus. Warum?
Grüße Thomas
Achtung.
Auf 8Bit Systemen wie Arduino mit 4 Byte Fließkommazahl hat die Fleißkommazahl nur 6 bis 7 signifikante Ziffern. Also alles was nach 3,14159 bzw 92 kommt sind reine Hausnummern.
Das ist dann egal ob die Zahl Pi, e, oder sonst eine Konstante oder eine selbst erfundene oder errechnete Zahl ist.
Ich weiß nicht ob das der Grund Deines komischen Effektes ist, könne mir es aber vorstellen.
Danke für den Tip.
Auf einem DUE macht er so in etwa er soll:
21:24:11.953 -> gz= 314159264.00
21:24:11.953 -> z1= 3
21:24:11.953 -> z2= 1
21:24:11.953 -> z3= 4
21:24:11.953 -> z4= 1
21:24:11.953 -> z5= 5
21:24:11.953 -> z6= 9
21:24:11.953 -> z7= 2
21:24:11.953 -> z8= 6
21:24:11.953 -> z9= 4
Allerdings passt die '4' am Ende nicht so ganz
Wenn Du was mit Fließkomma machen willst, es gibt auch µCs mit Fließkommarecheneinheit wie z. B. beim Teensy 4.1. Eigene Erfahrungen habe ich damit aber nicht, daher nur ein Hinweis, keine Enpfehlung.
Ich schrieb ja 8 Bit Controller. ( extra damit mir niemand einen Einwand geben konnte).
32 Bit Kontroller können eine Fleißkommazahl ruhig mit einer anderen Anzahl von byte darstellen und darum können die Signifikanten Ziffern anders als bei einem UNO sein.
Grüße Uwe
Das ist doch wurscht.
Verzichte auf float.
Trenne Deine Zahl in Vorkamma und Nachkomma ODER mach daraus ein CharArray.
Du willst die einzelnen Ziffern haben - dafür ist das letztere die allerbeste Variante!
Ich hab den F103 (Blue Pill) und dieser wird von Windows10 nicht erkannt. "USB-Gerät wurde nicht erkannt". Das Ganze auf 3 Rechnern und 2 Boards, so das ich nicht an einen Defekt glaube, zumal es schonmal funktioniert hat.
Mit dem Core von Roger Clark, und dem dort mitgelieferten Bootloader (den man natürlich erstmal auf das Board flashen muss) funktioniert das bei mir einwandfrei. Ohne Bootloader geht es mit einem STLink auch.