Komisches Verhalten Pollin Evaluationsboard

OP #1039390
Lesenswert?

Hallo zusammen,

ich habe gerade nen kleinen Code für mein Pollin Evaluationsboard V 2.01 
geschrieben:
1
DDRD = 0xE0; // Die letzten 3 Ausgänge
2
while(1)
3
{
4
  if(bit_is_set(PIND,PD2))
5
  {
6
    PORTD |= (1<<PD5);
7
  }
8
  else
9
  {
10
    PORTD &= (1<<PD5);
11
  }
12

13
  if(bit_is_set(PIND,PD3))
14
  {
15
    PORTD |= (1<<PD6);
16
  }
17
  else
18
  {
19
    PORTD &= (1<<PD6);
20
  }

Der Code soll folgendes machen:
Wenn ich Taster1(PD2) drücke soll LED1(PD5) leuchten
Wenn ich Taster2(PD3) drücke soll LED2(PD6) leuchten
Beim loslassen sollen die LED jeweils zurückgesetzt werden.

Soweit so gut. Wenn ich meinen Code so ansehe, sollte es doch eigenlich 
gehen oder nicht?!

Programm geflasht und nach drucken des Tasters1 leuchtet LED1. Beim 
loslasen geht diese wieder aus. freu
Das gleiche auch bei Taster2 und LED2.
Wenn ich nun aber beide Taster drücke und lasse einen z.B. Taster1 los 
sieht man das die LED1 etwas (aber nur ganz gering) dunkler wird bleibt 
aber an. Erst wenn ich dann den Taster2 loslasse gehen beide aus. Dies 
funktioniert auch andersrum, wenn ich Taster1 gedrückt halte und Taster2 
loslasse.

An was liegt das? Ist der COde falsch oder ist da ein problem auf dem 
Board?

Bin um jeden tip Dankbar.

Grüße
Matrix-NTN
OP #1039401
Lesenswert?

Oh... Ups.... wohl ein anfänger fehler :-)
Funktioniert nun perfekt auf dem Board...

Nun ist mein Ziel dies über ein Angeschlossenes IDE kabel zu machen...
Dabei setzte ich nun einen Ausgang(PA0) und sage, wenn der Eingang(PA1) 
kommt setze LED2 und ansonsten LED1.

Nun habe ich das IDE Kabel angeschlossen... Aber es leuchtet die LED2 
dauernd auser wenn ich den draht von PA1 mit meiner Hand berühre, dann 
gehen abundzu beide LEDs an und abundzu geht denn nur die LED1 an.
Wie wenn er irgendwie induktivitäten oder sowas hätte.

Hier noch der COde
1
PORTA |= (1<<PA0);
2
  if(bit_is_set(PINA,PA1))
3
  {
4
    PORTD |= (1<<PD6);
5
    PORTD &= ~(1<<PD5);
6
  }
7
  else
8
  {
9
    PORTD |= (1<<PD5);
10
    PORTD &= ~(1<<PD6);
11
  }
#1039733
Lesenswert?

Interne Pullups für die Taster-Eingänge aktiviert?

So ein Kabel ist ne schöne Antenne und zieht Störungen magisch an. Wenn 
die Pins als Eingang geschaltet sind, dann haben die ne recht hohe 
Eingangsimpedanz. Deshalb wirken sich Störungen so extrem aus.

Abhilfe: Pullups aktivieren und den Schalter nach GND schalten lassen.

MfG
Marius

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren