Нужен совет по автомату (СТОП-кнопка)
- Войдите на сайт для отправки комментариев
Ср, 13/11/2013 - 19:45
Добрый вечер
Программирую некий автомат, работу которого можно разделить на ожидания и на длительный рабочий цикл.
Так же в автомате есть СТОП-кнопка, по которой автомат должен блокироваться. Как бы корректней сделать обработчик этой кнопки?
У меня в основном цикле есть несколько циклов ожидания на delay и несколько рабочих минициклов, которые то ждут ответа с концевика, то паузу через delay. Я думаю, что надо заменить delay на циклы ожидания и в них вызывать проверку на нажатия кнопки, но боюсь, что конструкции проверки будут уж слишком громоздкими.
Подскажите решение, мб есть какие-нибудь мыслишки)
Спасибо
int time=((millis())/1000)%2;//выводить 1 раз в секунду if(time==1) { ...... ..... .....} //тогда каждую секунду будет выполняться ifint knopka If(knopka==1){ ..... .... ..... } //кстати лучше использовать в данном случае boolean переменную //если заменить все delay тем что выше то все будет норм работать по идееПрерывания? Они обрабатываются вроде как отдельно от всего, но могут влиять на всё
Если ето аварийный стоп, то им лучше вырубать без участия МК и уже потом только через доп контакты заводить сигнал аварии/останова на МК. Используйте прерывания. Та и вообще ждать событие в глухом цикле, это "некрасиво".
В цикле согласен, не совсем красиво. Дело в том, что раньше на этом автомате стояла хз какая плата, и выход этой кнопки как раз подходил к плате. Так что думаю, что буду через прирывания делать и флаг ловить в цикле
Ключевое слово "блокируется". Знать бы, каким именно образом. Может вообще лучше сделать некое внешнее независимое устройство (RS-триггер например?) которое по кнопке вообще бы обесточивало девайс/посылало команду прекратить действие/включало тормозящие электромагниты и т д и т п.