Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Два применения одного таймера (+)
Отправлено
radist 13 января 2009 г. 14:23
Встала передо мной задачка: на контролер приходят прямоугольные импульсы частотой от 1 Гц до 5000 Гц. Надо на другой ноге выдавать частоту в 10 раз больше (меандр). Я взял вроде бы подходящий камень ATTINY25 (2 8 разрядных таймера, работа от внутреннего генератора). Один таймер меряет входную частоту, второй генерит выходную (частота тактирования 8 МГц, у обоих таймеров делитель на 8). Вроде все просто и понятно. На низких частотах все работает замечательно, а вот на высоких нет(((. (И к тому же таймер 1 в студии не симулируется). Подаю на вход 500 Гц - на выходе 5565 Гц. Деление измеренного времени проверял - ошибок нет. Возникает вопрос: может таймеры тактируются не совсем одинаково? В связи с чем второй вопрос: как бы использовать для моей задачи один таймер. Вроде тоже ничего сложного - посчитал первый период, узнал время переключения выхода и жди его, потом снова прибавляй. А таймер должен считать по кругу, а мне тока успевай запоминай время фронтов и рассчитывай новые времена изменения выхода. Попробовал так сделать - на нужное время накладывается время выполнения команд (трех байтный счетчик проверить, наличие фронтов проверить). В общем и этот способ хорош на низких только частотах. Может есть другой хитрый способ?
Спасибо.
Составить ответ | Вернуться на конференцию.
Ответы