Niedawno zbudowałem układ sterowania do silników krokowych.
Rysunek poniżej przedstawia ten układ sterowania.
W linuksie napisania prostego programu do sterowania silnika krokowego nie sprawiło mi większego problemu.
Zamieszczam przykładowy kod źródłowy napisanego przeze mnie w linuksie
#include <sys/io.h>
#include <stdio.h>
#include <unistd.h>
static const int base_addr = 0x378;
int main(int argc, char **argv)
{
int i, steps, usec;
if (argc != 3) {
printf ("Za mala liczba argumentow\n");
exit (1);
}
steps = atoi(argv[1]);
usec = atoi(argv[2]);
if (ioperm (base_addr, 3, 1)) {
perror ("ioporm");
exit (1);
}
outb (0, 0x378);
for (i = 0 ; i < steps; i++ ) {
outb(8, 0x378);
usleep(usec);
outb(4, 0x378);
usleep(usec);
outb(2, 0x378);
usleep(usec);
outb(1, 0x378);
usleep(usec);
}
if (ioperm (base_addr, 3, 0)) {
perror ("ioporm");
exit (1);
}
return 0;
}
Może jest ktoś mi w stanie pomóż napisać prosty program do sterowania silniczkami krokowymi pod Windowsem. W Windowsie programuje w C++Builder 6 z wykorzystaniem biblioteki WinIO.h
Rysunek poniżej przedstawia ten układ sterowania.
W linuksie napisania prostego programu do sterowania silnika krokowego nie sprawiło mi większego problemu.
Zamieszczam przykładowy kod źródłowy napisanego przeze mnie w linuksie
#include <sys/io.h>
#include <stdio.h>
#include <unistd.h>
static const int base_addr = 0x378;
int main(int argc, char **argv)
{
int i, steps, usec;
if (argc != 3) {
printf ("Za mala liczba argumentow\n");
exit (1);
}
steps = atoi(argv[1]);
usec = atoi(argv[2]);
if (ioperm (base_addr, 3, 1)) {
perror ("ioporm");
exit (1);
}
outb (0, 0x378);
for (i = 0 ; i < steps; i++ ) {
outb(8, 0x378);
usleep(usec);
outb(4, 0x378);
usleep(usec);
outb(2, 0x378);
usleep(usec);
outb(1, 0x378);
usleep(usec);
}
if (ioperm (base_addr, 3, 0)) {
perror ("ioporm");
exit (1);
}
return 0;
}
Może jest ktoś mi w stanie pomóż napisać prosty program do sterowania silniczkami krokowymi pod Windowsem. W Windowsie programuje w C++Builder 6 z wykorzystaniem biblioteki WinIO.h