Forum: Mikrocontroller und Digitale Elektronik Eingang abfragen Ausgang setzen geht nicht wie ich will


von Hanns (Gast)


Lesenswert?

Hallo zusammen...

ich arbeite mich durchs AVR Tutorial durch und versuche nun mit Ein- und 
Ausgängen eines ATMEGA8515 etwas zu experimentieren.
...das ganze auf dem STK500

eine simple Aufgabe, aber irgend was mache ich wohl falsch?!

Port A sind alles Eingänge, mit den Tastern verbunden und PortB alles 
Ausgänge mit LED's verbunden.

Mein code:
1
 DDRB=0xFF; // alle pins des Port B als Ausgang setzen 
2
  DDRA=0x00;   // alle Pins des Port A als Eingang setzen
3
  PORTA=0xFF; // Pull Up wiederstände an Eingang A aktivieren
4
  
5
   while(1)
6
    {  
7
  if (PINA & (1<<PINA0))  {
8
    PORTB|= 0x00;
9
  }    
10
  else  {
11
    PORTB|= 0xFF;  
12
  }          
13
  }    
14
   return 0;  
15
    
16
}

nach dem Reset leuchten alle LED's, das geht...
durch drücken des Tasters an PinA Bit 0, wird dieser Low und alle Bits 
des PortB werden 0 gesetzt... geht soweit...
lässt man den Taster wieder los bleiben die LED'sb aber Dunkel! wieso? 
diese sollten doch wieder leuchten, da die if bedingung wieder erfüllt 
ist...

Hat jemand einen Tipp?

Danke und gruess
Hanns

von Joe (Gast)


Lesenswert?

Ein "verodern" mit 0 "PORTB|= 0x00"
löscht kein einziges Bit.
Setze die Bits gleich auf 0, PORTB = 0x00;
dann gehts!

von Hanns (Gast)


Lesenswert?

sowas einfaches... aber was gelernt | = oder :-)

danke! es klappt...

von STK500-Besitzer (Gast)


Lesenswert?

Hanns schrieb:
> sowas einfaches... aber was gelernt | = oder :-)

Man sollte auch verstehen, was die Operationen bedeuten.

von troll (Gast)


Lesenswert?


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.