Hallo,
ich habe das Pollin Atmel Evaluationboard 2.01 und pobiere gerade einige
Dinge aus. Ich möchte einfach, das die LEDs die Tasterstati anzeigen.
Auf dem Board sind die verwendeten Taster 2/3 mit PD3/4 und die LEDs 1/2
mit PD5/5 verbunden. Es ist ein Tiny2313 gesteckt.
Dazu habe ich folgendes Assembler-Programm geschrieben.
;-----------------------------------------------------------------------
-
.include "2313def.inc" ;Definitionsdatei laden
.cseg ;Beginn eines Code-Segmentes
.org 0 ;Startadresse = 0
;
start:
ldi r16, low(ramend)
ldi r17, high(ramend) ;Adresse vom RAM-Ende laden
out spl, r16 ;Stackpointer auf
; out sph, r17 ;RAM-Ende setzen
ldi r16, 0b01100000 ;PortD: PB5-6 auf Ausgang
out ddrd, r16 ;setzen
loop:
in r16, PIND ;Port D einlesen
lsl r16 ;2x nach links, dann sind die Bits
lsl r16 ;der Taster 2/3 bei den LED's 1/2
out portd, r16 ;Daten an PortD ausgeben
nop
clr r16
rjmp loop ;Programmschleife neu beginnen
;-----------------------------------------------------------------------
-
Direkt nach dem überspielen mit PonyProg funktioniert alles einwandfrei.
Ich drücke die Taster in jeder möglichen Kombination und die LEDs
leuchten passend dazu. Lasse ich jetzt das Bord einige Sekunden in Ruhe
und drücke dann einen Taster, so leuchtet LED 1für einige Sekunden auf
und ich habe völlig undefinierte LED Zusände. Z.B. LED 1 geht auf Taster
3 an und bleibt an, auch wenn kein Taster mehr gedrückt ist, Das
passiert auch mit Taster 2 und LED 1. Ich vermute das es kein
technisches Problem ist, sondern ein Programmfehler.
Kann mir evtl. dazu jemand etwas sagen?
Gruß
Kaczy