|
#include
#include
#includeint main()
{int i, t=100;
int base_addr=0x200;
char c, ch, dir=0;outp(base_addr, 0x00);
outp(base_addr+ 1, 0x00);
outp(base_addr+ 2, 0x00);
outp(base_addr+ 3, 0x00);
puts("\nsmotor> \t --- step moptor test. tver car building plant. ---\n");
for(i= 0;1 ; i++)
{if(kbhit())
{ch=getch();
switch(ch)
{case 27: outp(base_addr, 0x00); puts("\nsmotor> \t --- step moptor is halted. Bye. ---\n"); return 1;
case 32: dir= ~ dir; break;
case 'd': printf("smotor> delay ?>"); scanf("%d",t);puts("\n");break;
}
}
printf("smotor> step %d /dir=%s/pulse %d[%d] ", i/4, (!dir)? "+x": "-x", c=(char) i%4, t);
switch(c)
{case 0: c=(!dir)? 0x09: 0x0c; break;
case 1: c=(!dir)? 0x03: 0x06; break;
case 2: c=(!dir)? 0x06: 0x03; break;
case 3: c=(!dir)? 0x0c: 0x09; break;
}
outp(base_addr, c);
delay(t);
ch= inp(base_addr);
printf("%s[%02x/%02x]\n", (c== ch)? "-ok": "- fault", c, ch);
}
return 1;
}
E-mail: info@telesys.ru