Wlasny program do sterowania silnikiem
: 30 mar 2009, 15:57
Witam
Pisze swoj program do sterowania silnikiem krokowym, ale powyzej predkosci 100 krokow/sek silnik sie zacina, gubi kroki itd. Podejrzewam gdzie tkwi problem tylko nie umiem go obejsc. Jak policzylem przy predkosci 100krokow/sek trzeba generowac impuls na LPT co 10 milisekund, tymczasem windows przelacza sterowanie miedzy aplikacjami z ta wlasnie czestotliwoscia, co oznacza, ze wiekszej dokladnosci sterowania impulsami w prosty sposob nie osiagne, silnik otrzymuje nieregularne impulsy przez co rozjezdza sie faza w jakiej sie sam znajduje z przychodzacymi impulsami.
Nie wie ktos jak to obejsc? Zwiekszyc w windows czestotliwosc przelaczania procesora miedzy aplikacjami? Wrzucac dane na port nie poprzez pojedyncze instrukcje zapisu do portu, tylko jakims buforem, ustawic predkosc transmisji i niech hardware pilnuje odstepow czasowych? Podejrzewam, ze sposob drugi bedzie dobry, moze ma ktos kawalek kodu ktory to robi? Wszedzie znalazlem tylko setki przykladow z zapisywaniem na port pojedynczych bajtow.
PB
Pisze swoj program do sterowania silnikiem krokowym, ale powyzej predkosci 100 krokow/sek silnik sie zacina, gubi kroki itd. Podejrzewam gdzie tkwi problem tylko nie umiem go obejsc. Jak policzylem przy predkosci 100krokow/sek trzeba generowac impuls na LPT co 10 milisekund, tymczasem windows przelacza sterowanie miedzy aplikacjami z ta wlasnie czestotliwoscia, co oznacza, ze wiekszej dokladnosci sterowania impulsami w prosty sposob nie osiagne, silnik otrzymuje nieregularne impulsy przez co rozjezdza sie faza w jakiej sie sam znajduje z przychodzacymi impulsami.
Nie wie ktos jak to obejsc? Zwiekszyc w windows czestotliwosc przelaczania procesora miedzy aplikacjami? Wrzucac dane na port nie poprzez pojedyncze instrukcje zapisu do portu, tylko jakims buforem, ustawic predkosc transmisji i niech hardware pilnuje odstepow czasowych? Podejrzewam, ze sposob drugi bedzie dobry, moze ma ktos kawalek kodu ktory to robi? Wszedzie znalazlem tylko setki przykladow z zapisywaniem na port pojedynczych bajtow.
PB