Например TDA7294

Форум РадиоКот • Просмотр темы - Как расчитать временную задержку
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб июл 12, 2025 10:26:10

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Как расчитать временную задержку
СообщениеДобавлено: Ср фев 08, 2006 23:24:36 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 717
Зарегистрирован: Ср фев 01, 2006 22:29:02
Сообщений: 3107
Откуда: г.Ростов-на-Дону
Рейтинг сообщения: 0
Вопрос к автору статьи про подключение LCD к 2313. Сам только разбираюсь с программированием микроконтроллеров поэтому хотелось бы узнать как расчитать задержку при программировании на необходимое время поглядел ваш кусок с задержкой на 40мks

Delay40mks:
push Temp

ldi Temp,0
Loop:
dec Temp
brne Loop

pop Temp

ret
И хотелось бы узнать а как расчитать например на 10,15,20 мks.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 09, 2006 01:10:11 
Говорящий с текстолитом
Аватар пользователя

Карма: 5
Рейтинг сообщений: 4
Зарегистрирован: Пн авг 22, 2005 21:02:22
Сообщений: 1529
Откуда: Питер
Рейтинг сообщения: 0
На самом деле - для столь точных временных задержек существует таймер.
А вообще - считается очень просто. Допустим, есть прога задержки:

Код:
Delay:
          ldi Temp,0
          ldi Temp1,10
         
loop:   dec Temp
          brne loop

          dec Temp1
          brne loop
 
          ret

Сначала 256 раз мотается первый цикл (уменьшение Temp на 1). Каждый раз, когда мы проваливаемся из этого цикла, Temp1 уменьшается на 1, и так происходит 10 раз.
Известно (из даташита, разумеется), что команда dec выполняется за 1 такт, команда brne - в случае перехода - за два, иначе - за один. Считаем: 255 циклов первой задержки имеют длину 3 такта, 1 цикл - 2 такта. То есть, однократное выполнение - 256*3-1 = 767 тактов
Вторая задержка также выполняется за 3 такта. Это происходит каждый раз, когда мы проваливаемся из первой задержки во вторую. Итого - 10 раз. То есть, в сумме - 30 тактов.
В сумме получаем:
(767*10)+30 = 7700 тактов.
Пусть частота кварца = 10 МГц
Переводим в секунды.
1 такт = 0,1 мкс
7700 тактов = 770 мкс

Фсе :) Ращет окончен. Вооольна! :o

_________________
Лучше быть первым в деревне, чем вторым в Риме


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 09, 2006 18:24:11 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 717
Зарегистрирован: Ср фев 01, 2006 22:29:02
Сообщений: 3107
Откуда: г.Ростов-на-Дону
Рейтинг сообщения: 0
Спасибо за разьяснение.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 09, 2006 18:53:23 
Говорящий с текстолитом
Аватар пользователя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Чт дек 15, 2005 17:34:48
Сообщений: 1507
Откуда: Петрозаводск
Рейтинг сообщения: 0
Удачи! :wink:

_________________
путь наименьшего сопротивления проходит по пути наитолстого провода (с) Сергей Соболь


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 09, 2006 21:33:08 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 717
Зарегистрирован: Ср фев 01, 2006 22:29:02
Сообщений: 3107
Откуда: г.Ростов-на-Дону
Рейтинг сообщения: 0
Еще раз просмотрел ваши пояснения насчет расчета временных задержек:
Цитата:
На самом деле - для столь точных временных задержек существует таймер.
А вообще - считается очень просто. Допустим, есть прога задержки:


Код:
Delay:
ldi Temp,0
ldi Temp1,10

loop: dec Temp
brne loop

dec Temp1
brne loop

ret


Сначала 256 раз мотается первый цикл (уменьшение Temp на 1). Каждый раз, когда мы проваливаемся из этого цикла, Temp1 уменьшается на 1, и так происходит 10 раз.
Известно (из даташита, разумеется), что команда dec выполняется за 1 такт, команда brne - в случае перехода - за два, иначе - за один. Считаем: 255 циклов первой задержки имеют длину 3 такта, 1 цикл - 2 такта. То есть, однократное выполнение - 256*3-1 = 767 тактов
Вторая задержка также выполняется за 3 такта. Это происходит каждый раз, когда мы проваливаемся из первой задержки во вторую. Итого - 10 раз. То есть, в сумме - 30 тактов.
В сумме получаем:
(767*10)+30 = 7700 тактов.
Пусть частота кварца = 10 МГц
Переводим в секунды.
1 такт = 0,1 мкс
7700 тактов = 770 мкс

Фсе Ращет окончен. Вооольна!


Тогда по этим расчетам получается что первый кусок прграммы равен не 40mks а 76,7 mks если идти по вашему описанию: 256*3-1=767 тактов
Пусть частота кварца = 10 МГц
Переводим в секунды.
1 такт = 0,1 мкс
767 тактов = 76,7 мкс
Может я что не так понял?
и если можно то расчет первого куска который на 40mks.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y