Witam,
piszę program do sterowania silnikami krokowymi pod ATmega128. Mam problem przy sterowaniu. Podczas generowania impulsów sterujących ruchem za pomocą przerwania zdarza się, że czasem przerwanie nie generuje impulsu. Oglądałem przebiegi generowane na analizatorze stanów logicznych.
Wygląda to tak jakby procek z niewiadomych mi przyczyn nie generował przerwania, albo nie ustawiał w przerwaniu odpowiednio stanu pinu wyjściowego.
Efekt występuje rzadko, ale na tyle często żeby podczas poruszania silnikiem występowały lekkie zatrzymania w ruchu. W ten sposób bardzo szybko zniszczę silniki i resztę mechanizmu, z którym współpracują.
Czy spotkał się ktoś z podobnym problem?
Dodam, że próbowałem napisać to również w zwykłej pętli w funkcji głównej, ale efekt jest ten sam.
Z góry dziękuję za wszystkie rady i wskazówki.
piszę program do sterowania silnikami krokowymi pod ATmega128. Mam problem przy sterowaniu. Podczas generowania impulsów sterujących ruchem za pomocą przerwania zdarza się, że czasem przerwanie nie generuje impulsu. Oglądałem przebiegi generowane na analizatorze stanów logicznych.
Wygląda to tak jakby procek z niewiadomych mi przyczyn nie generował przerwania, albo nie ustawiał w przerwaniu odpowiednio stanu pinu wyjściowego.
Efekt występuje rzadko, ale na tyle często żeby podczas poruszania silnikiem występowały lekkie zatrzymania w ruchu. W ten sposób bardzo szybko zniszczę silniki i resztę mechanizmu, z którym współpracują.
Czy spotkał się ktoś z podobnym problem?
Dodam, że próbowałem napisać to również w zwykłej pętli w funkcji głównej, ale efekt jest ten sam.
Z góry dziękuję za wszystkie rady i wskazówki.
