Консультация № 184229
16.10.2011, 20:46
65.00 руб.
0 2 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Возникла проблема с динамической индикацией с использование многоразрядных семисегментных индикаторов. Необходимо ввести с клавиатуры четырехзначное число. Это получатся, что нужно обновлять изображение на индикаторах с такой частотой, чтобы не было незаметно человеческому глазу? А как тогда как производить какие-либо вычисления: получится, что параллельно надо и обновлять изображение на индикаторах и производить вычисления? Или можно использовать прерывание от какого-то таймера, настроив его на нужную частоту? А что если в процессе обработки потребуется использовать два таймера (например в 8051)? Или есть что-то, с помощью чего можно решить эту проблему? Или я что-то не понимаю?
И еще вопрос с измерением длительность сигнала: например надо запустить процесс после прихода сигнала длиной 1мс. Я ставлю на прерывание INT0 (в 8051) приход импульса. В прерывании включаю таймер, настроенный на 1мс. Жду когда установится бит переполнения таймера. Выхожу из прерывания. Это правильно? Или есть какой-то другой способ? Подскажите, пожалуйста.

Обсуждение

давно
Посетитель
7438
7205
16.10.2011, 21:08
общий
это ответ
Здравствуйте, Плутон!
1) Если для обработки нужны оба таймера, то индикацией можно нагрузить одно из прерываний таймера.
Т.е. обрабатывать и индикацию, и что-то другое. Обычно бывает разная частота обработки, в таком случае
заряжаем таймер на меньший период, и считаем. Как только дойдем до нужного количества - отрабатываем
второе событие.
2) Вы бит переполнения таймера ждете в прерывании таймера? Конечно, неправильно.
Если прерывание разрешено, то лучше либо сделать всю работу в прерывании, либо взвести в прерывании какой-то бит,
а всю работу сделать в основном цикле, предварительно дождавшись бита.
Если прерывание не разрешено (можно и так), то можно ждать бита переполнения таймера, но только в основном цикле.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Академик
20764
1861
16.10.2011, 21:54
общий
В обычных калькуляторах всё сделано проще: никаких прерываний. В режиме ожидания - индикация и опрос клавиатуры. А при вычислении - и индикации нет.
Форма ответа