Bei meiner (Programmiersprachen-) Leseschwäche sieht das deutlich aufwändiger aus, aber ich komme damit besser zurecht.... Das kann man abfragen, zB mit: ...
Hier ein Beispiel für zwei Jumper auf PB6 und PB7. Wichtig im Code ist nur die Zeile nach "// Anwendung im Code". Wie gesagt, mehr Aufwand, ich lese das besser.
Code:// Ports+Pins als Ein- (0) oder Ausgänge (1) konfigurieren, Pull Ups (1) aktivieren // A = Ausgang, E = Eingang ohne , EU = Eingang MIT PullUp DDRB = 0b00111111; // siehe aktuell oben PORTB = 0b11000000; // und Port/Pull Ups (1) aktivieren // ... #define IsBitSet(ADDR,BIT) (((ADDR) & (1<<BIT))?1:0) // Fragt Bit = 1? #define IsBitClr(ADDR,BIT) (!((ADDR) & (1<<BIT))?1:0) // Fragt Bit = 1? // ... // - - - - - - - - - - - - - - - - #define JUMPER_PORT PINB // #define JMP_6 6 // #define JMP_7 7 // // ... // - - - - - - - - - - - - - - - - #define JUMPER6_an IsBitClr (JUMPER_PORT, JMP_6) // Jumper 6 gesetzt ?? #define JUMPER6_aus IsBitSet (JUMPER_PORT, JMP_6) // Jumper 6 gelöst ?? // ... // - - - - - - - - - - - - - - - - // Anwendung im Code if (JUMPER6_an) tu_das(); // Aktion wenn Jumper gesetzt ist // ============================================================================== = // Ein Beispiel bei einer sinngemäßen Tastenanwendung in einem meiner Codes if ( Taste1_an ) { // SetBit ( PrtLED, L1r ); // Zünde rote LED, sobald Taste gedrückt while ( Taste1_an ) {} // warten, bis Taste1 gelöst ist ClrBit ( PrtLED, L1r ); // wms ( 100); // u0st1(); // RX-Tx-UART0(PD) zum Einstellen rUn wms ( 10); // Wait SrvTST_06 (); // Servo 1 mit Verzögerung testen r1n } // Ende if ( Taste1_an ) ...







Zitieren
Lesezeichen