Forum: Mikrocontroller und Digitale Elektronik PORT-PINS als Jumper AVR (Ethernut 2)


von Christian (Gast)


Lesenswert?

Moin!

Ich arbeite gerade mit einem Ethernut 2 Board, das in weitere Hardware 
eingebettet wird.

Bei der Programmierung ist jetzt der Wunsch nach einem Jumper 
entstanden, um zwischen zwei "Konfigurationen" (Default und Service) bei 
der Software unterscheiden zu können.

Knackpunkt ist, dass außer einen Jumper zu stecken dabei keine weiteren 
"Hardwaremodifikationen" entstehen dürfen.

Ich dachte zuerst, dass das einfach ginge.
Also z.B. Port-B-0 als Input, Port-B-1 als Output.
Und dann B0 wahlweise mit B1 verbinden oder halt nicht.

Aber nachdem, was ich jetzt ausprobiert habe, muss ich wohl doch B0 mit 
GND verbinden um ihn auf Low zu bekommen...
...was aber die nicht zulässige weitere Hardwaremodifikation bedeuten 
würde.

:-(

Bevor ich also jetzt das "Wunsch läßt sich nicht erfüllen" weitergebe, 
wollte ich mich nochmal rückabsichern, ob ich da evtl. einen 
konzeptionellen Fehler gemacht habe?

Leuchtet mir irgendwie nicht ein, dass ein Output-Pin nicht auch Input 
für einen Input-Pin sein kann...

...hmmm...

Oder muss ich mir mein Software nochmal ansehen?
Oder habe ich schon was am Board zerschossen?
...?

Viele Grüße
Christian

von holger (Gast)


Lesenswert?

>Leuchtet mir irgendwie nicht ein, dass ein Output-Pin nicht auch Input
>für einen Input-Pin sein kann...

Mir auch nicht;)

von heinzhorst (Gast)


Lesenswert?

1
#define GESTECKT 1
2
#define UNGESTECKT 0
3
4
unsigned char jumper;
5
6
B1 = 0;
7
if (!B0){
8
  B1 = 1
9
  if(B0){
10
    jumper = GESTECKT;
11
  }
12
  else{
13
    jumper = UNGESTECKT;
14
  }
15
}

von Christian (Gast)


Lesenswert?

OK. Dann mal der softwareseitige Teil:

/*...*/

DDRB  &= ~(_BV(0)); //set Pin PB0 to input
DDRB  |=   _BV(1); // set Pin PB1 to output
PORTB |=   _BV(0); // activate PullUp on PB0
PORTB &= ~(_BV(1));  // set Pin PB1 to low

/*...*/

if(bit_is_set(PINB,0)) {
 fputs_P(PSTR("HIGH"),stream);
} else {
 fputs_P(PSTR("LOW"),stream);
}

/*...*/

von Christian (Gast)


Lesenswert?

...hmmm...
...bin jetzt mal auf Port-E weitergewandert...
...mit Bit 6 als Input und Bit 7 als Output funzt es nun...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.