Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Таймер.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ps1x
Имеется частота кварца - 8,901 Мгц.
Требуется получить прерывание каждые пол секунды.
Получается используя делитель получаем 8,692 кГц частоту срабатывания. нам нужно пол секунды - делим на 4346. Это число (4346) переводим в hex и получаем 10FA записываем в TCNT1 таймера.

Все ли здесь верно?

И еще, на старом (видимо советском) кварце написано ТВ-1 8901 - я правильно понимаю что кварц 8,901 мГц?
_Bill
Цитата(ps1x @ Oct 10 2006, 18:25) *
Имеется частота кварца - 8,901 Мгц.
Требуется получить прерывание каждые пол секунды.
Получается используя делитель получаем 8,692 кГц частоту срабатывания. нам нужно пол секунды - делим на 4346. Это число (4346) переводим в hex и получаем 10FA записываем в TCNT1 таймера.

Все ли здесь верно?

И еще, на старом (видимо советском) кварце написано ТВ-1 8901 - я правильно понимаю что кварц 8,901 мГц?

Нет! Таймер считает в сторону увеличения. В данном случае необходимо вычесть полученное число из 65536. Прерывания будет возникать при переполнении счетчика таймера.
Можно также использовать прерывание по сравнению (Output match Compare). В этом случае полученное число загружается в регистр OCR1, а таймер устанавливается в режим счета со сбросом по совпадению TCNT1 и OCR1.
Насчет кварца. Вряд ли это число соответствует частоте. У кварцевых резонаторов частота указывалась либо в кГц (для первой гармоники, например, 8000 кгц), либо в МГц (для резонаторах, работающих на высших гармониках). Вам лучше проверить частоту вашего генератора, используя какой-нибудь простой генератор.
singlskv
Вам вот сюда:
Настройка таймера
прочитайте топик и отредактируйте под свои значения
=GM=
Цитата(ps1x @ Oct 10 2006, 14:25) *
Имеется частота кварца - 8,901 Мгц.
Требуется получить прерывание каждые пол секунды.
Получается используя делитель получаем 8,692 кГц частоту срабатывания. нам нужно пол секунды - делим на 4346. Это число (4346) переводим в hex и получаем 10FA записываем в TCNT1 таймера.

Все ли здесь верно?

И еще, на старом (видимо советском) кварце написано ТВ-1 8901 - я правильно понимаю что кварц 8,901 мГц?


Если у вас счетчик стоит на скручивание или режим сравнения, то правильно. Но, как правило, счетчик работает на увеличение, поэтому надо записывать 65536-4346=61190=0хEF06.

Насчет кварца ничем не могу помочь, не знаю(:-(.
SasaVitebsk
Цитата(=GM= @ Oct 10 2006, 20:12) *
Цитата(ps1x @ Oct 10 2006, 14:25) *

Имеется частота кварца - 8,901 Мгц.
Требуется получить прерывание каждые пол секунды.
Получается используя делитель получаем 8,692 кГц частоту срабатывания. нам нужно пол секунды - делим на 4346. Это число (4346) переводим в hex и получаем 10FA записываем в TCNT1 таймера.

Все ли здесь верно?

И еще, на старом (видимо советском) кварце написано ТВ-1 8901 - я правильно понимаю что кварц 8,901 мГц?


Если у вас счетчик стоит на скручивание или режим сравнения, то правильно. Но, как правило, счетчик работает на увеличение, поэтому надо записывать 65536-4346=61190=0хEF06.

Насчет кварца ничем не могу помочь, не знаю(:-(.


В принципе и ассемблер и Си позволяет писать просто "-4346" без всяких переводов в hex. Вам просто суть операции пояснили.
rmo
Есть программа AvrCalc для определения настройки таймеров
rezident
8901 на кварце это его дата изготовления (январь 1989 г.) smile.gif
ps1x
Цитата(rezident @ Oct 11 2006, 04:20) *
8901 на кварце это его дата изготовления (январь 1989 г.) smile.gif

Вы знаете, думаю нет ибо получаются прерывания раз в пол секунды, и USART работает вполне стабильно именно при указании частоты 8,901 мегагерц...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.