... Das kann man abfragen, zB mit: ...
Bei meiner (Programmiersprachen-) Leseschwäche sieht das deutlich aufwändiger aus, aber ich komme damit besser zurecht.
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 ) ...
Lesezeichen