Witam, mam problem z dokonczeniem programu w pascalu. Chodzi o motor krokowy, trzy komendy juz wlasciwie dzialaja (przelaczniki 0,1,2) pozostaly mi przelaczniki 3, 4 i 5 i za nic nie wiem , jak mam sie do tego zabrac. Czy ktos umialby to dokoczyc?
Z gory dziekuje za reakcje
Zuzanna
PROGRAM WYGLADA TAK:
uses crt;
const select = $280;
data = $281;
var trzydziesci :byte;
siedemdziesiatpiec :byte;
licznik :integer;
licznik2:integer;
licznik3:integer;
licznik4:integer;
label
przeczytaj,start_lewo,start_prawo,timer,timer_tk,start_30,start_75,mainprog,przelacznik0,przelacznik1,przelacznik2,przelacznik3,przelacznik4,przelacznik5,l1_2,r1_3;
BEGIN
writeln(‘przelacznik0 do zera’);
writeln(‘przelacznik1 75 stopni w lewo’);
writeln(‘przelacznik2 30 stopni w prawo’);
writeln(‘przelacznik3 najktrotsza droga do pozycji zero’);
writeln(‘bez przerwy w lewo - dopoki przelacznik4=1’) ;
writeln(‘bez przerwy w prawo - dopoki przelacznik5=1’);
asm
mov dx,select
mov al,255-16
out dx,al
mainprog: call przelacznik0
call przelacznik1
call przelacznik2
call przelacznik3
call przelacznik4
call przelacznik5
ret
przelacznik0: mov dx,data
in al,dx
and al,00000001B
cmp al,00000001B
jz przeczytaj
call timer_tk
ret
przelacznik1: mov dx,data
in al,dx
and al, 00000010B
cmp al, 00000010B
jz start_75
call timer_tk
ret
przelacznik2: mov dx,data
in al,dx
and al, 00000100B
cmp al, 00000100B
jz start_30
call timer_tk
ret
przelacznik3: jmp przelacznik4
przelacznik4: mov dx,data
in al,dx
and al, 00000100B
cmp al, 00000100B
ret
przelacznik5: mov dx,data
in al,dx
and al, 0000001B
cmp al, 0000001B
ret
start_75: mov siedemdziesiatpiec,0
jmp l1_2
l1_2: inc siedemdziesiatpiec;
call start_lewo
dec trzydziesci;
start_lewo: mov dx,data
mov al,249
out dx,al
call timer
mov dx, data
mov al, 248
out dx, al
call timer
ret
start_30: mov trzydziesci, 0
jmp r1_3
r1_3: mov al, trzydziesci
cmp al, 8
jnz l1_2
jmp przelacznik3
timer_tk: mov licznik3, 32000
mov licznik4, 100
ret
przeczytaj: mov dx, data
mov al, 127
out dx, al
ret
timer: mov licznik, 32000
mov licznik2, 1
ret
END;
END.