sebastianh
14.03.2005, 13: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
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