Hallo, da bin ich wieder :)
Es tut mir leid, dass ich euch nicht genauer informiert habe.
Das *1000 resp. *100 hatte es gebraucht, weil mein eigentlicher code so
aussieht:
1 |
|
2 | if(var1 + var2 + var3*20000 > var4*1000)
|
3 | {
|
4 | PORTC |= (1<<PORTC5); //LED an
|
5 | }
|
6 | else
|
7 | {
|
8 | PORTC &= ~(1<<PORTC5); //LED aus
|
9 | }
|
Die Multiplikation braucht es bei meinem Programm.
Da ich aber nicht verstanden habe, wieso es bei grossen Zahlen wie 20000
nicht funktioniert, wollte ich das Problem eingrenzen.
Ich habe immer gedacht, dass der Typ bei einer Rechnung in einem
Vergleich keine Rolle spielt, da der Wert (z.B. var3*20000) ja gar nicht
der Variable (z.B. var3) zugewiesen wird.
Wieso hat eigentlich bei einem 8-Bit Mikrocontroller der Datentyp "int"
16 Bits?
lg Adrian