Tip zur Vermeidung solcher Probleme:
Benutze #defines für solche Konstanten, definiere die alle an einem
Stück.
Das kann dann so aussehen:
1 | #define WERT_KLEINER_028 0b111111111
|
2 | #define WERT_KLEINER_056 0b111111110
|
3 | #define WERT_KLEINER_084 0b111111100
|
4 | #define WERT_KLEINER_112 0b11111000
|
5 | #define WERT_KLEINER_140 0b11110000
|
6 | #define WERT_KLEINER_168 0b11100000
|
7 | #define WERT_KLEINER_196 0b11000000
|
8 | #define WERT_KLEINER_224 0b10000000
|
9 | #define WERT_SONST 0b0000000
|
10 |
|
11 | ...
|
12 | if (ergebnis < 28) //Abfrage der Größe von Ergebnis für lineare Ausgabe auf LEDS (verschachtelte If Schleife)
|
13 | {PORTB = WERT_KLEINER_028;}
|
14 |
|
15 | else if (ergebnis < 56)
|
16 | {PORTB = WERT_KLEINER_056;}
|
17 |
|
18 | ...
|
Und Du siehst das Problem Dich förmlich anspringen.
Alternative: Investiere eine Viertelstunde Zeit und lerne die 16
Bitkombinationen, die sich hinter den Werten 0x0 bis 0xF verbergen.
Trainier' das eine Weile lang, und Du musst nie wieder Einsen und Nullen
zählen oder gar hinschreiben.
Das haben vor Dir ganze Generationen anderer Programmierer hinbekommen,
denn die 0b-Schreibweise ist nicht im C-Sprachstandard enthalten,
sondern nur eine proprietäre Erweiterung Deines C-Compilers.