AVR ATmega8: AND-Logik bei LED`s

Gast #1042426
Hallo zusammen

Bin bei meinen ersten Programmierversuchen bei einem ATmega8 und wollte 
nun mal folgenden Code testen:


.include "m8def.inc"

         ldi r16, 0xFF
         out DDRB, r16

         ldi r16, 0x00
         out DDRD, r16

loop:
         in r16, PIND
         andi r16, 0b11110000
         out PORTB, r16
         rjmp loop

Meine Erwartung: Wenn man den Switch 0-3 drueckt sollte kein LED 
leuchten, aber das machen sie doch, wieso?

Gruss:
Simon
Persönliche Seite #1042437
Simon wrote:
> Hallo zusammen
>
> Bin bei meinen ersten Programmierversuchen bei einem ATmega8 und wollte
> nun mal folgenden Code testen:
>
>
> .include "m8def.inc"
>
>          ldi r16, 0xFF
>          out DDRB, r16
>
>          ldi r16, 0x00
>          out DDRD, r16
>
> loop:
>          in r16, PIND
>          andi r16, 0b11110000
>          out PORTB, r16
>          rjmp loop
>
> Meine Erwartung: Wenn man den Switch 0-3 drueckt sollte kein LED
> leuchten, aber das machen sie doch, wieso?
>
> Gruss:
> Simon
Deine Erwartung versteh ich nicht... das UND hat doch nix mit den 
gedrückten Tasten zu tun...
Du wendest nur eine konstante Maske auf die Tastendrück an.
1
loop:
2
  in r16, PIND
3
  andi r16, 0b11110000
4
  brne an
5
   out PORTB, 0xFF
6
   rjmp loop
7
  an:
8
   out PORTB, 0x00
9
rjmp loop
Dann sollten die LEDs leuchten (oder ausgehen je nachdem wie sie 
beschaltet sind) wenn du ALLE Tasten gleichzeitig drückst.

Kommt jezt aber auch wieder drauf an wie die Tasten verschaltet sind 
etc... naja etwas Mher input über den AUfbau wären nicht schlecht ;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.