Napisałem obsługę silnika krokowego przez TCP/IP z obracaniem go o zadaną przez WWW ilość kroków oraz w danym kierunku. Niestety (wydaje mi się, że z powodu dużej ilości kodu samego stosu) silnik lubi sobie zgubić krok lub dwa.
Podczas testów samego silnika doszedłem do tego, że idealnym "taktowaniem" dla niego jest 2,5ms, przy innych wartościach robił za dużo bądź za mało kroków (silnik ma 100 kroków).
Kod obsługi wygląda następująco:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Oczywiście reszta kodu czyli ustawienie timera, rejestru przepełnienia, przerwania itp jest ustawiona na w/w 2,5ms a funkcje kroki_prawo() itd są z płyty dołączonej do książki.
Posiadacie Panowie jakieś pomysły jak zniwelować to zjawisko?
Myślałem nad wrzuceniem całej obsługi do przerwania bo silnik cały obrót robi w ułamku sekundy a requesty z przeglądarki nie będą przychodziły bez przerwy więc chwilowa przerwa w działaniu stosu nie zaszkodzi ale raczej nie jest to eleganckie rozwiązanie;)