Forum: Mikrocontroller und Digitale Elektronik AVR ATmega8: AND-Logik bei LED`s


von Simon (Gast)


Lesenswert?

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

von Marius W. (mw1987)


Lesenswert?

Meine Glaskugel ist grad im Urlaub...

Mach mal mehr angaben zur Außenbeschaltung deines Megas.

MfG
Marius

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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 ;)

von Simon (Gast)


Lesenswert?

Huch, daran habe ich gar nicht gedacht! Es sind die gleichen Anschluesse 
wie in 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen

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.