Eingang abfragen Ausgang setzen geht nicht wie ich will

Gast #2787736
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.