Hallo,
ich habe zum Umrechnen eines AD-Wertes eine Gleichung nach dem Dreisatz
erstellt. Doch GCC spuckt das falsche Ergebnis aus.
1 | unsigned int adc_wert;
|
2 | unsigned int cache;
|
3 | char buffer[10];
|
4 |
|
5 | int main (void)
|
6 | {
|
7 | adc_wert = 1000;
|
8 | cache = (adc_wert * 6006)/2048;
|
9 | itoa (cache, buffer, 10);
|
10 | }
|
wenn ich aber mit 65536 als Divisor rechne stimmt das Ergbnis wieder.
1 | unsigned int adc_wert;
|
2 | unsigned int cache;
|
3 | char buffer[10];
|
4 |
|
5 | int main (void)
|
6 | {
|
7 | adc_wert = 1000;
|
8 | cache = (adc_wert * 196608)/65536;
|
9 | itoa (cache, buffer, 10);
|
10 | }
|
wo liegt bei mir hier der Fehler.
Danke
Ronny
Und ja ich habe die Forumssuche benutzt, aber nichts dazu gefunden. Und
ich habe gerade mein C-Buch nicht zur Hand, ist in der Wäsche. :-)