Marco schrieb:
> hat der 1. befehl vorteile gegenüber dem 2. ? wenn ja welche
> und warum ist es sinnvoll MEINBIT0 zu verwenden und nicht einfach 0?
Wenn du die Makros nicht MEINBIT0 und MEINBIT1 nennst, sondern
beispielsweise
1 | #define WARN_LAMPE 0
|
2 | #define SIRENE 2
|
was ist dann leichter verständlich?
oder
1 | PORTB |= ( 1 << WARN_LAMPE ) | ( 1 << SIRENE );
|
Wenn du dann die Verschiebeaktion auch noch ins Makro verlagerst
1 | #define WARN_LAMPE ( 1 << PB0 )
|
2 | #define SIRENE ( 1 << PB2 )
|
3 |
|
4 | ...
|
5 |
|
6 | PORTB |= WARN_LAMPE | SIRENE;
|
dann hast du das Beste aus 2 Welten:
Auf der einen Seite kannst du an den Makros leicht und problemlos
ablesen, welche Bits das sind. Und auf der anderen Seite siehst du im
Code auf einen Blick, was an dieser Stelle die Absicht im Programm ist.
Die eigentliche Absicht ist es ja nicht, da irgendwelche Pins auf 0 oder
1 zu setzen. An den Pins hängt ja etwas. Zum Beispiel eine Warn Lampe.
Zum Beispiel eine Sirene. Zum Beispiel das Relais, welches den Motor
schaltet. Zum Beispiel ... Die eigentliche Absicht ist es ja, genau
dieses etwas ein oder aus zu schalten. Und genau diese Absicht soll sich
im Code wiederfinden. Die Bits auf 0 oder 1 zu setzen ist nur Mittel zum
Zweck. Es ist dieser Zweck, der ersichtlich sein soll. Anwendungsbezogen
programmieren! Direkt mit den Worten der ganz konkreten Anwendung. Denn
das Beste daran ist dann auch: man braucht keinen Kommentar mehr, der
einen darüber aufklärt, dass hier die Sirene eingeschaltet wird. Und das
ist gut so. Denn auf der einen Seite tendieren Kommentare nach einiger
Zeit sowieso dazu falsch zu sein und auf der anderen Seite sind wir
Programmierer faule Hunde. Wir leben nach dem Motto: Ein Kommentar, der
nicht geschrieben werden braucht, weil eh schon alles im Code steht, ist
ein guter Kommentar :-)
Bei
siehst du erst mal nichts. Sondern du musst erst mal mit deinem
Schaltplan ergründen, was denn da eigentlich an den beiden Portbits
hängt. Das mag dir jetzt noch geläufig sein, aber in 2 Monaten, wenn du
in der Zwischenzeit 5 andere Programme geschrieben hast, sieht die Sache
gleich ganz anders aus.
Ganz abgesehen davon, dass du mit dieser Schreibweise dann auch nicht
Gefahr läufst, dich bei den vielen 0-en und 1-en zu verzählen. Nicht
lachen. Alles schon vorgekommen.