Как сделать длинную задержку на 2313, да и на других...

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт дек 01, 2006 20:32:23
Откуда: Запорожье

Сообщение Dmitro »

Как сделать длинную задержку на 2313, да и на других тоже поделитесь принципом я че-то не докумекаю, если конечно не использовать таймер и тыщу раз его перезапускать через прерывание по переполнению, в аппноут от Atmel я не въезжаю. Кто растолкует
Контактная информация:
Реклама
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

Можно сделать несколько более коротких.

в CVAVR вот так

delay_ms(сколько милисекунд);

по моему можно до 0xFFFF делать

пример в папке C:\CVAVR\examples\ADC8535

и на страничке "Си для МК" /05.htm
http://www.radiokot.ru/forum/viewtopic. ... hlight=htm
Реклама
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт дек 01, 2006 20:32:23
Откуда: Запорожье

Сообщение Dmitro »

мне вот надо минут 10 и желательно на асме, а если честно я и от 1 часа не откажусь...
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

Настроить таймер на минимальную частоту, счет от 0, прерывание по переполнению.
В прерывании инкрементируем к.-л. переменную и по достижении ей определенного значения, кот. задается нужным временем задержки, осуществляем действие. Например, при частоте 3кГц 16-ти разрядный таймер переполнится примерно за 20с, т.е. через 180 срабатываний прерывания получим задержку в 1 час.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Если без таймеров и прерываний, то ничего иного, кроме как вложенные циклы, не придумать:

Код: Выделить всё

loop1:
   dec   r0
   brne  loop1
   dec   r1
   brne  loop1
   dec   r2
   brne  loop1
   dec   r3
   brne  loop1
Прикинь, сколько циклов будет выполняться приведенный пример кода, если перед его началом r0=r1=r2=r3=0: при тактовой частоте 10МГц этот код будет выполняться... более 20 секунд!
У AVR-ов регистров много, можно такие задержки реализовывать :)...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

Dmitro писал(а):мне вот надо минут 10
delay_ms(0xFFFF);
Dmitro писал(а):если честно я и от 1 часа не откажусь...
delay_ms(0xFFFF);
delay_ms(0xFFFF);
delay_ms(0xFFFF);

delay_ms(0xFFFF);
delay_ms(0xFFFF);
delay_ms(0xFFFF);
Dmitro писал(а):и желательно на асме ...
Скомпилируйте и в фале листинга возьмите код на АСМе.

можно delay_ms(сколько); поместить в цикл while например - тогда на несколько лет наверно можно паузу состряпать.
Реклама
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

Только вот при использовании таймера почти все время можно спать, а при delay_ms() контроллер будет пахать вхолостую... А оно надо?
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт дек 01, 2006 20:32:23
Откуда: Запорожье

Сообщение Dmitro »

Короче пришлось делать через таймер и подсчитывать количество прерываний, так что сильно не поспишь, ну в общем чего надо добился, пару часов наскрести можно на 3,6864МГц...
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 534
Зарегистрирован: Пн янв 16, 2006 08:00:17
Откуда: Иркутск

Сообщение Mamonth »

В Application notes на сайте www.atmel.com есть апноут под номером 133. Там использован очень хитрый прием и его можно использовать. Почитайте, может поможет.
Today fine night...
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

Поищите на русском на apnout.narod.ru номер AVR133
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт дек 01, 2006 20:32:23
Откуда: Запорожье

Сообщение Dmitro »

К сожалению я знаю этот сайт нет там на русском, а на ихнем у меня все апноуты есть
Контактная информация:
kolyay

Сообщение kolyay »

А в некоторых процах часы то есть, они то не подойдут?
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»