Gut
Das Meiste braucht Str(). Und es spart auch Flash, aber erst dann richtig, wenn gar keine Fließkommaoperation mehr drin ist, denn dann muss der Compiler die dafür benötigten Routinen nicht mehr einbinden.Es funktioniert auch auf der Hardware prima und benötigt nicht einmal annhähernd soviel Rechenzeit wie bei der Verwendung einer Gleitkommarechnung.
Ich kenne die gegenwärtige Berechnung nicht.auch die Berechnung der Betriebsspannung ohne Gleitkomma zu realisieren. Hast du auch dazu einen Ansatz
Der Trick bei der Festkommaarithmetik ist, erstmal den Ausgangswert zu reduzieren, solange ohne Genauigkeitsverlust möglich, dann so zu multiplizieren dass die Variable garantiert nicht überläuft, man dann möglichst durch Schieben teilen kann und auch der Wert entsprechend der späteren Formatierung entsteht. Im Beispiel eben mal 25 und durch 4 gleich 6,25.
Bei 'nem ADC mit 'ner Referenz von 2,56V und Meßbereich durch Spannungsteiler 0-10V wäre die theoretisch erzielbare Genauigkeit ~0,01V, also muss 10V dann den Wert 1000 ergeben, um nach Formatierung zu 10,00 zu werden.
Wenn der ADC auf 10Bit eingestellt ist, beträgt der höchste Wert &h3FF oder 1023. Gehen wir davon aus, dass 10V diese 1023 ergeben, so müsste man mal 1000 nehmen und durch 1023 teilen, Letzteres geht nicht durch schieben.
Multipliziert man aber den ADC-Wert von 1023 mit 1001, dann kommt 1024023 raus, schiebt man dann um 10Bit nach rechts, sind's 1000. Da der µC nur 1Bit weise schieben kann, somit also jedes Schieben extra Takte kostet, würde sich anbieten nur 2 mal zu schieben und den Rest durch einen 1Byte Versatz im Overlay zu erledigen.
Lesezeichen