Как стать автором
Обновить

Комментарии 6

Вы крутите мотором в обработчике прерывания — это абсолютно недопустимо.
Такой код не имеет развития. Готов спорить, что даже на 9600 теряются команды.

И отдельное спасибо за
ConfigState = 1;
— отличная попытка вынести мозг тому, кто будет читать ваш код )
Извините, с ответом промахнулся.
Программа на компьютере ждёт ответа от микроконтроллера, а он приходит только после выполнения команды. А с ConfigState я как-то пропустил, ткните пожалуйста где, а то я найти не могу.
Здесь,
if (data<10) {ConfigState = 1; MotorStepUP(data);}

выставляется ConfigState = 1, дальше проваливаемся в if затем в switch которые со свистом проскакиваем, что бы сбросить ConfigState в 0 и отправить 'R' — оно работает конечно, но все это лишняя сложность для читающего код.

Программа на компьютере ждёт ответа от микроконтроллера, а он приходит только после выполнения команды.

Понятно, можно и так — синхронный режим. Два моторчика одновременно так не покрутить.
Да, забавная ошибка:) Сейчас исправлю. Спасибо.
Стало еще хуже.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории