Man kanns auch übertreiben. Das oben wird durchaus für den
normalgebrauch funktionieren. Bedenke, er/sie ist Anfänger. Da kommts
selten auf so extreme Timings an.
Ich hätte es allerdings auch anders geschrieben:
1 | unint8_t buffer=0;
|
2 |
|
3 | while (1) {
|
4 | //RS-Flip Flop
|
5 | buffer = PINB;
|
6 | if ( buffer & PB1 )
|
7 | PORTB &= ~((1 << PB7) | (1 << PB6));
|
8 | else if ( buffer & PB0 )
|
9 | PORTB |= (1 << PB7) | (1 << PB6);
|
10 | }
|
Ist kürzer und für meine Augen übersichtlicher.
Man könnte auch
1 | switch( PINB & (PB0 | PB1) ) {
|
2 | case PB1:
|
3 | ; //reset
|
4 | break;
|
5 | case PB0:
|
6 | ; //set
|
7 | break;
|
8 | }
|
einbauen, das müsste es mMn auch tun, ich persönlich mag aber die
if-else Konstruktion viel lieber!
lg Martin