Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: помогите с задержкой
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
emx2000
В задание просят сделать задержку через таймер. Инфу читал только не очень понятно. ( программа для AVR 8535 )
Обьясните на пальцах как:
1) установить таймер чтоб делал задержку 0.32 секунды.
2) таймером же сделать задержку в 255 mips.
Заранее спасибо!

P.S. пример на ассемблере был бы кстати!! biggrin.gif
MicronSys
Цитата(emx2000 @ Oct 2 2005, 18:41)
В задание просят сделать задержку через таймер. Инфу читал только не очень понятно. ( программа для AVR 8535 )
Обьясните на пальцах как:
1) установить таймер чтоб делал задержку 0.32 секунды.
2) таймером же сделать задержку в 255 mips.
Заранее спасибо!

P.S. пример на ассемблере был бы кстати!!  biggrin.gif
*


Что такое задержку в 255 mips
Можно етоже только в сек.

И какой кварц должен стоять

Напиши внятно а то так можно и smile3046.gif

на ASM не дам а на Си могу что угодно написать
fur
Цитата(emx2000 @ Oct 2 2005, 19:41)
В задание просят сделать задержку через таймер. Инфу читал только не очень понятно. ( программа для AVR 8535 )
Обьясните на пальцах как:
1) установить таймер чтоб делал задержку 0.32 секунды.
2) таймером же сделать задержку в 255 mips.
Заранее спасибо!

P.S. пример на ассемблере был бы кстати!!  biggrin.gif
*

На частоте кварца 4МГц.
1) Пишешь в регистр TCNT1 значение 0xFB1E, запускаешь таймер записью в регистр TCCR1B значения 0x05, ждешь переполнение таймера, вот тебе и задержка в 0.32 секунды.
2) TCNT1=0xFF01, TCCR1B=0x01.
AndyBig
Цитата
2) таймером же сделать задержку в 255 mips.

MIPS - это единица измерения производительности (Mega Instructions Per Second, если не ошибаюсь), поэтому как можно им мерять временные интервалы? Может быть задержка в 255 тактов?
BVU
Реализация задержки всегда берет свое начало от тактовой частоты микроконтроллера. Если есть прескаллер (предделитель) для таймера, можно так же использовать и его. Далее оценивается сколько от секунды 'весит' один такт. Организовывается прерывание по сравнению. Таймер считает до величины занесенной в регистр сравнения. В теле прерывания - подпрограмма для события реализации задержки. А дальше Ваши дальнейшие действия...
Если не требуется точности, так таковой. Можно организовать программный полинг по считыванию значения таймера.
А если хотите классически запускать таймер-задержку, необходимо иметь таблицу таймеров со структурами и прерывание действующее как квант реального времени в теле которого обрабатываются события счета и истечения времени действующих таймеров.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.