PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfacher Taster



darkkiller
06.04.2007, 17:02
Hallo,

Ich bin gerade dabei meine ersten gehversuche mit ASM zu machn.
Ausgangssituation:
Habe das MyAVR 2.0 (USB)

an PORT-D (2) hängt ein Taster
an PORT-B (2) eine LED

Nun will ich solange der Taster gedrückt ist soll auch die LED leuchten.
Eigentlich ein einfaches unterfangen:



.include "m8def.inc"

ldi r16,255
OUT DDRC,r16 ; AUSGANG

ldi r16,0
OUT DDRB,r16 ; EINGANG

;EDIT:
;Laut dem Forum brauche ich die Pull-Ups --->

ldi r16,0xFF
OUT DDRB,r16

main:

IN r16,PINB
OUT PORTC,r16

RJMP main


Leider geschieht nichts...
Könnte mir jemand hierbei helfn?

p_mork
06.04.2007, 17:50
Wenn an PORTD.2 der Taster hängt und an PORTB.2 die LED, dann müsste die main so aussehen:



main:
in r16,PIND
out PORTB,r16
rjmp main


Bie Dir wird ja der Zustand von PINB abgefragt, obwohl der Taster an D hängt und das Ergebnis in PORTC geschrieben, obwohl die LED an B hängt.

MfG Mark

darkkiller
06.04.2007, 18:09
uppps mein fehler da war wohl ein kleiner fehler beim copy&paste

Also nochmal +g+

PORT-D (2) Eingang -> Taster
PORT-B (2) Ausgang ->LED

und as dazugehörige programm:


.include "m8def.inc"

ldi r16,255
OUT DDRB,r16 ; AUSGANG

ldi r16,0
OUT DDRD,r16 ; EINGANG

;EDIT:
;Laut dem Forum brauche ich die Pull-Ups --->

ldi r16,0xFF
OUT DDRD,r16

main:

IN r16,PIND
OUT PORTB,r16

RJMP main



komischer weise liefer mir das programm keine reaktion nur wenn ich die LED auf Pin 0 von PortB stecke eine leuchtende led ?

Taster zeigt auch keine wirkung

p_mork
06.04.2007, 18:16
Wenn Du mit



ldi r16,0xFF
OUT DDRD,r16

PORTD als Ausgang setzt....

Nimm das hier, das sollte klappen:



.include "m8def.inc"

ldi r16,255
OUT DDRB,r16 ; AUSGANG

ldi r16,0
OUT DDRD,r16 ; EINGANG

main:

IN r16,PIND
OUT PORTB,r16

RJMP main


MfG Mark

darkkiller
06.04.2007, 18:20
sorry funktioniert auch nicht :(

p_mork
06.04.2007, 18:31
Komisch, ich hab es mit AVR-Studio simuliert und da klappte es problemlos... :-k :-k :-k

MfG Mark

darkkiller
06.04.2007, 19:12
laut meinem AVR-Studio funktionierts auch einwandfrei ?

nur auf meiner MyAVR platte nicht ?

So nun stellt sich folgendes problem:

Wenn ich mein Programm im AVR Studio schreibe und mit dem Codevision brenne funktioniert es nicht,

brenne ich aber das SELBE Programm mit myAVR Workbench (=schrott) funktioniert es ?


Hat irgendwer schon einmal das gleiche Phänomen erlebt ?