|
Програмно-аппаратный умножитель частоты на авр, Ищу идеи для оптимального кода. |
|
|
|
Nov 16 2014, 16:01
|

Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 24-10-07
Из: zp.ua
Пользователь №: 31 690

|
Есть плавающая частота близкая к меандру от едениц герц до 2 килогерц. Мне нужно за каждый полупериод провести около 8 небольших вычислений с равным интервалом времени (не критично, джиттер до 10% не фатален) и выдать результат наружу. Есть 2 свободных восьмибитных таймера в ATMEGA128.
Чего с алгоритмом надумал: Конфигурирую таймеры на счет с разными пределителями, один к одному, и один к восьми. Более медленным таймером начинаю считать от начала входного полупериода (по прерыванию), и по прерываниям таймера инкриментирую накопительную переменную №1(типа старшие разряды медленного счетчика). Когда входной полупериод заканчивается (по прерыванию) то переписываю значение медленного таймера в быстрый, и значение переменной №1 в переменную №2. Теперь надо запустить быстрый таймер на обратный отсчет, и по его прерываниям отнимать по единичке от переменной №2 пока не дойду до нуля, как только дошли, запускаем счетчик снова и проводим нужные вычисления, и так циклимся до конца входного полупериода.
Вроде идея простая, но с кодом из за недостатка опыта програмирования пока лажа (пока изучаю работу таймеров в симуляторе). А пока я хотябы хромой код не родил, хочу спросить, может я велосипед изобретаю, и уже есть подобные реализации в коде? Буду рад ссылкам, идеям и любым пинкам в нужном направлении.
Сообщение отредактировал -=TRO=- - Nov 16 2014, 16:06
|
|
|
|
|
 |
Сообщений в этой теме
-=TRO=- Програмно-аппаратный умножитель частоты на авр Nov 16 2014, 16:01 Plain Ну а защёлка свободна, ведь так? Nov 17 2014, 13:48 -=TRO=- Цитата(Plain @ Nov 17 2014, 17:48) Ну а з... Nov 17 2014, 15:26 Plain Главное, что надо усвоить с таймерами — никогда им... Nov 17 2014, 18:15 -=TRO=- Спасибо за настолько развернутый ответ.
Я конечно ... Nov 17 2014, 22:14 Plain В идеальных условиях, т.е. когда у таймера в налич... Nov 17 2014, 23:44
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|