a4: Änderungen

This commit is contained in:
Johannes Theiner 2018-12-11 16:55:56 +01:00
parent 3cc43f71d0
commit 0edbf6ab02
1 changed files with 42 additions and 21 deletions

View File

@ -16,6 +16,7 @@ tcountv dw 100 * twait ; Impulszaehler fuer Verzoegerung * 10ms
; Rueckwaertszaehler ; Rueckwaertszaehler
frei db 'frei ', 0 ; Texte frei db 'frei ', 0 ; Texte
belegt db 'belegt ', 0 belegt db 'belegt ', 0
dir db 20
; Konstanten ; Konstanten
divider equ 0 ; Platzhalter fuer Ihre Zeitkonstante1 divider equ 0 ; Platzhalter fuer Ihre Zeitkonstante1
@ -121,7 +122,7 @@ ifzero:
ifbelowzero: ifbelowzero:
mov dx, pieces << shcnt mov dx, pieces << shcnt
and dx, 10000001b and dx, 10000010b
mov [status], dx mov [status], dx
@ -194,26 +195,29 @@ init:
isr_opentimer: ; Timer fuer Vereinzeler (Zeit fuer Oeffnung) isr_opentimer: ; Timer fuer Vereinzeler (Zeit fuer Oeffnung)
push ax push ax
; Ihr Programmcode
;Zeit abgelaufen ? ;Zeit abgelaufen ?
inc byte [divider] mov ah, [divider]
cmp byte [divider], tcountv mov al, [status]
jne isr_opentimer_out test al, 00000010b
jz isr_opentimer_out
mov ax, [status]
and ax, 11111110b
mov [status], ax
inc ah
cmp ah, [tcountv]
jnz isr_opentimer_out
mov ah, 0
mov byte[dir], trechts
and al, 0xfd
isr_opentimer_out: ; Ausgang aus dem Service isr_opentimer_out: ; Ausgang aus dem Service
mov [status], al
mov [divider], ah
mov al, eoi ; EOI an PIC mov al, eoi ; EOI an PIC
out ocw_2_3, al out ocw_2_3, al
pop ax pop ax
iret iret
isr_lt: ; Lichttaster isr_lt: ; Lichttaster
; Ihr Programmcode
push ax push ax
mov al, [status] mov al, [status]
@ -223,12 +227,25 @@ isr_lt: ; Lichttaster
times shcnt shl al, 1 times shcnt shl al, 1
and byte [status], 00001111b and byte [status], 00001111b
or [status], al or [status], al
mov [status], al
and al, 11111101b
cmp al, 0b
jz left
cmp al, 10b
je right
left:
mov byte[dir], tlinks
jmp isr_lt_out
right:
mov byte[dir], trechts
jmp isr_lt_out
isr_lt_out: ; Ausgang aus dem Service isr_lt_out: ; Ausgang aus dem Service
mov [status], al or byte [status], 00000010b
or byte [status], 00000001b
mov al, eoi ; EOI an PIC mov al, eoi ; EOI an PIC
out ocw_2_3, al out ocw_2_3, al
pop ax pop ax
@ -236,20 +253,24 @@ isr_lt_out: ; Ausgang aus dem Service
isr_servotimer: ; Timer fuer Servo (Vereinzeler) isr_servotimer: ; Timer fuer Servo (Vereinzeler)
push ax push ax
push bx
; Ihr Programmcode
mov bl, [status]
and bl, 11111110b
cmp bl, 0x0 mov ah, [tcounts]
jz auf inc ah
cmp ah, [dir]
jnz auf
out ppi_a, al
auf:
cmp ah, tpwm
jnz isr_servotimer_out
mov al, ppi_pa6
out ppi_a, al
jmp isr_servotimer_out
isr_servotimer_out: ; Ausgang aus dem Service isr_servotimer_out: ; Ausgang aus dem Service
mov al, eoi ; EOI an PIC mov al, eoi ; EOI an PIC
out ocw_2_3, al out ocw_2_3, al
pop bx
pop ax pop ax
iret iret