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
Meine Glaskugel ist grad im Urlaub... Mach mal mehr angaben zur Außenbeschaltung deines Megas. MfG Marius
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 ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.