
Zitat von
izaseba
Wie kriegt man jetzt ein Komma dahin?
indem man itoa im Eigenbau benutzt
Kommt wieder aus dem Assembler:
Von der Ausgangszahl wird solange 1000 abgezogen, bis die Zahl kleiner als 1000 ist. man muß sich nur merken, wie oft mal 1000 abgezogen hat.
Code:
uint8_t zaehler = 0;
while (deinadcergebnis >= 1000) {
zaehler++;
deinadcergebnis -=1000;
}
Diese Lösung für Division mit Rest ist wohl die kürzeste (was Flash-Verbrauch angeht). Man kann sich aber auch in der libgcc2 bedienen bei Division mit Rest:
Code:
#include <inttypes.h>
/* Struktur definieren und Funktion bekannt machen */
typedef struct
{
uint32_t quot; /* Quotien */
uint32_t rem; /* Rest */
} udiv32_t;
extern udiv32_t udiv32 (uint32_t, uint32_t) __asm__("__udivmodsi4");
...
{
udiv32_t qrem;
qrem = udiv32 (spannung_mV, 1000);
spannung_vorkomma = qrem.quot;
spannung_nachkomma = qrem.rem; /* von 0...999 */
}
Etwas mehr zu tippen aber ne gute Ecke schneller
Lesezeichen