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.