|
генератор импульсов на ATmega16 |
|
|
|
Jan 22 2009, 08:29
|

Профессионал
    
Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409

|
Цитата Получается так... задающая частота 10 МГц... Через prescaler делю её на 1024, получается 9765,625 Гц - это частота с которой будет работать таймер. Далее мне нужно, например, чтобы он махал ногой с частотой 1 Гц. Т.е. я должен вычислить число, с которым будет сравниваться значение таймера и по совпадению инвертировать уровень на ноге. Как мне вычислить это значение? Fсист - системная тактовая частота, Кдел - коэф. деления предделителя Fтс=Fсист/Кдел - тактовая частота ТС Fуст - необходимая частота Fтс/Fуст=Кпер (Кпер - коэф. пересчёта в режиме СТС) N=Кпер/2=Fтс/(2*Fуст)=Fсист/(2*Кдел*Fуст) - число заносимое в регистр сравнения для заданной частоты N=Fсист/(2*Кдел*Fуст) N=10000000/(2*512*1)=9765,625 N=9765 - занеся такое число в регист сравнения при 10МГц и Кдел=512 получите 1,000064 Гц на выходе Цитата(neurox @ Jan 22 2009, 11:22)  memphis_, внутренний RC подойдет для этой цели? Т.З. можно поменять... отсутствие частот от 1 до 10 Герц не критично. Лучше используйте внешний кварц. Внутренний RC-генератор врятли подойдёт. Его нужно калибровать, параметры могут плавать от температуры. Но можете проверить опытным путём.
|
|
|
|
|
Jan 22 2009, 08:45
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 30-06-08
Пользователь №: 38 638

|
Палыч, mempfis_ спасибо!  сижу вникаю...
|
|
|
|
|
Jan 22 2009, 13:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
Цитата А вот, попробуйте представить (записать) все двадцатичетырёхразрядные числа в виде произведения двух чисел - одного 8-ми, а второго 16-ти разрядных. А если представить(а так оно и есть) что на вход 8битного таймера-счетчика поступает частота деленная на 2^16(максимальное значение 16битного таймера)? Мы опустим возможность получения некоторых промежуточных значений несколькими комбинациями обоих таймеров - нам ни к чему лишние сложности. Другое дело, что меняя период первого таймера мы на выходе второго будем получать частоту первого таймера деленную пополам, т.к. второй таймер нам даст минимальное деление на 2, т.о. мы не получим чистые 24 бита, будет только 23, но это все равно лучше чем 16 с программным последующим делением, т.к. решение будет аппаратное и не будет большого дрожания фазы. Может мы из-за бита спорим?
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|