ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
30 июня
300347 Топик полностью
ReAl (18.01.2012 22:37 - 22:43, просмотров: 153) ответил =AlexD= на Шагать по этажам абстракции нужно с осторожностью, иначе можно далеко зайти.
Да-да-да! Состояние автомата и входной сигнал. Это две сущности. Но где-то там ниже о взаимодействии между ними было сказано, что «автомат читает входные сигналы» — это якобы неправильно. Правильно «входные сигналы поступают ему на вход». Да пофигу. Ну вот таймер. На «высоком» уровне есть входной сигнал окончания таймаута и реакция автомата на него (стрелочки TOUT над чертой возле дуг из нескольких состояний). 1) Произошло прерывание от таймера (скажем, output compare — у меня иногда в программных реализациях фсякой фигни битовые/байтовые таймауты таким отдельным прерыванием идут). Обработчик прерывания сразу сделал какие-то действия в автомате. Имеем
  • Обработчик прерывания есть частью автомата.
  • На вход автомату пришло аппаратное событие конца таймаута.
  • 2) Произошло прерывание от таймера, он поднял какой-то флаг. Код реализации автомата на очередном витке проанализировал флаг и изменил состояние автомата. Имеем:
  • Обработчик прерывания есть часть внешнего мира.
  • Сигналом есть состояние флага
  • В этом случае уже можно сказать «сигнал пришёл на вход», а можно «автомат опросил вход» 3) Никаких прерываний, таймер себе крутится, автомат на каждом витке считывает значение таймера, сравнивает с запомненным ранее опорным значеним и решает, истёк ли таймаут. Имеем:
  • Частью внешнего мира есть регистр TCNT таймера.
  • Сигналом есть значение времени, прочитанное оттуда.
  • Вот тут у меня уже не повернётся язык сказать «на вход автомата поступает сигнал значения времени». Привычнее «автомат считывает показания таймера». Я написал только об этом. Иногда удобнее для рассуждений говорить «сигнал пришел на вход», иногда — «автомат считал значение». Всё зависит от конкретных условий. Где-то явная асинхронщина с частью кода (или всем кодом) автомата в прерываниях. «Поступило». Где-то синхронный опрос - «насильно считал». Даже улучшает читаемость :-)