PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe bei ASM-Code



sebastianh
14.03.2005, 12:12
Hallo,

hab mir ein script zusammen gestöpselt, leider hab ich irgendwo einen fehler drin.
es ist eigentlich ganz simpel. ich möchte nur über die serielle Schnittstelle einen Wert von 0-255 an die C-control schicken, dort diesen Wert über DA[1] ausgeben und dann im selben Moment am AD[1] wieder einlesen. Dann den Wert von AD[1] zurück über die serielle.

Habs mit folgendem ASM probiert, vielleicht kann mir jemand einen kleinen Tipp geben.

lg sebastian

--------------------

eingang equ $0A ; DA[1]
addata equ $08
adstat equ $09
ausgabe equ $12 ; zurück über serielle Schnittstelle
wert equ $11 ; Datenregister

baudrate equ $0D ; Baudratenregister
cr1 equ $0E ; Controlregister 1
cr2 equ $0F ; Controlregister 2
status equ $10 ; Statusregister



org $101
lda #$20
sta adstat

seriell lda #$C0 ; 9600 Baud
sta baudrate
lda #$00 ; keine Interrupts
sta cr1
lda #$0C ; Sender und Empfaenger ein
sta cr2

main


jsr readcom ; gehe zu readcom
sta eingang ; schicke den Wert an da[1]
bra adwert ; gehe zu adwert


readcom brclr 5,status,readcom ; warte auf bit 5 =1
lda wert ; lese wert ein
rts ; zurück

writecom brclr 7,status,writecom
sta addata
jsr main

adwert brclr 7,adstat,adwert
coma
lda addata ; ad-wert einlesen
jsr writecom ; gehe zu writecom

sebastianh
14.03.2005, 12:19
hab ich noch vergessen:
also ich bekomme schon werte wieder zurück, aber leider nur 0, obwohl alles richtig verkabelt ist.

der fehler wird also nicht beim ein- auslesen der seriellen schnittstelle liegen, das hab ich nämlich schon geschafft!

Dirk
14.03.2005, 18:22
Hallo sebastianh,

was ich mich gerade frage:
Wie schnell arbeitet eigentlich ein D/A-Wandler und wie schnell ein A/D-Wandler?

Wie wäre es mit etwas Zeit, also mit Pause zwischen den Abfragen?

Gruß Dirk

sebastianh
14.03.2005, 20:33
hallo,

laut beschreibung mit 1953 Hz.
also das sollte eigentlich reichen für meine anforderungen!

lgs