Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Таймер MCS 51


Автор: gribikc 25.10.2007, 14:53
добрый день.
такая проблема надо на aduc 812 сделать эмулятор эхолота и лага
в 2х словах надо генерировать на 3х портах импульсы длительностью 1мс и разной скважностью 
как выделывать разную скаважность это легко таймерами 1 и 2
а вот как 1м тайером 0 засекать 1 мс для разных портов одновременно н епонятно
вот что примерно должно быть

                   ?
_________--_____________________________
_______________________________--_______                             это сигналы эхолота
                                                               ?

                 ?                 ?                ?                 ?
________--________--________--________--__                             это для лак

проблема в выдержки логической единици в течении 1мс в разных местах иногда одновременно для разных портов с помощью одного таймера у кого какие мысли....

моё решение мне не нравитсо(((( потом выложу

Автор: AVR32 25.10.2007, 17:39
Кто вырабатывает синхросигналы, т.е. метки времени, в которых выставляется логическая единица в течении 1мс? Делается это программно или по сигналам от внешних источников, попросту внешние прерывания?

Автор: gribikc 25.10.2007, 22:36
по таймерам т1 и т2

Автор: AVR32 27.10.2007, 02:11
По т1 и т2 запоминаешь значения т0. Прерывание от т0 настраиваешь на ту частоту, которая обеспечит тебе максимально допустимый разброс меток от т1 и т2. В прерывании т0 анализируешь запомнены значения. Скорее всего, тебе придётся делать программные счётчики для увеличения разрядности счёта запомненных т1 и т2 в прерывании т0

Автор: gribikc 31.10.2007, 14:28
всем спасибо изменили ТЗ теперь длительность другая))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)