Например TDA7294

Форум РадиоКот • Просмотр темы - Работа с таймером на AT89S52-24PU
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт окт 23, 2025 06:56:44

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


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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Работа с таймером на AT89S52-24PU
СообщениеДобавлено: Пт фев 14, 2014 23:56:04 
Родился
Аватар пользователя

Зарегистрирован: Вс фев 09, 2014 01:29:51
Сообщений: 11
Рейтинг сообщения: 0
Доброго времени суток! Хотелось бы узнать, как правильно работать с таймером на AT89S52-24PU? Имеем тактовую частоту 24МГц, а также таймер в режиме 1, схему его видим ниже.
Изображение
Если я правильно понял, то в таймере предусмотрен предделитель на 6. Таким образом, частота работы таймера составит 24/6=4МГц.
И тут у меня появляется 2 варианта развития событий:
1) Каждые 1/(4*10^6)=0,00000025=0,25*10^-6 с содержимое таймера будет инкрементироваться.
2) Каждые 12/(4*10^6)=0,000003=3*10^-6 с содержимое таймера будет инкрементироваться. В числителе цифра 12, т.к. операция инкрементации выполняется в течении 1 машинного цикла, который в свою очередь длится 12 периодов тактового генератора.
Второй вариант сомнителен, но имеет право на существование в моих догадках) А может быть, ни первый, ни второй вариант неверны. Вот и хотелось бы узнать у опытных людей, как рассчитать скорость наращивания содержимого таймера? :)
И еще вопрос ...
Допустим, если первый вариант верный, то для того, что бы создать задержку, к примеру, в 5 мкс, мне нужно будет занести в байты TL и TH значение 1111111111101100 (65516), запустить таймер, и через 5 мкс получить установку флага TF0, верно? А после получения флага совершить требуемые действия, и сбросить флаг командой RETI, дабы вновь иметь возможность отловить установку флага, так выходит? :)
Извините, если каряво изъяснился, МК начал учить недавно :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с таймером на AT89S52-24PU
СообщениеДобавлено: Сб фев 15, 2014 13:43:19 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1484
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15235
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Для начала - сообщение не в своем разделе
AT89S52 относится к семейству INTEL MCS51, а не к AVR!!! ( т.е иди сюды: viewtopic.php?f=62&t=59015 )

Стандартно принимается частота резонатора /12 как входное значение для таймер/счетчика.
Откуда появилось :6 в хардваре мануал:

For timer operation (C/Tx# = 0), the timer register counts the divided-down peripheral
clock. The timer register is incremented once every peripheral cycle (6 peripheral clock
periods). The timer clock rate is FPER / 6, i.e. FOSC / 12 in standard mode or FOSC / 6 in
X2 mode.

как-то о тактовой переферии пролезло... для "замутнения" или с точки зрения "читайте все предельно внимательно"
там еще есть вариации на тему х2моде - пока принять за основу стандартный режим!
Да и основоположник этого семейства INTEL ежли интересно скину на электронку - для непосредственной выкладки в форуме великовато, тем более что сейчас тема MCS51 туточки "не в фаворе" мягко говоря :evil:

Для Вашего варианта тактовая на входе = 24/12 = 2MHz (0,0000005S)
для получения интервала 5uS (0,000005S) потребуется всего 10 тактов т.е. заносится в счетчик 0xFFFF-0x000a+1
Причем если это Т/С0 или Т/С1 то прийдется каждый раз делать останов-перезагрузка-пуск (для обычного режима) что в результате практически лишено смысла ибо за время выполнения операции перезагрузки и самого прерывания данная выдержка потеряет первоначально- рассчетное значение (слишком высока базовая частота).
Более рационален режим автоперезагрузки таймера - тогда потери времени только на само прерывание.
В принципе надо анализировать вначале "соизмеримость" величин в задаче... Разумно использовать таймеры для работы с интервалами хотя-бы в 10 и более раз превосходящими длительность исполнения команды МК... :cry:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с таймером на AT89S52-24PU
СообщениеДобавлено: Сб фев 15, 2014 18:58:24 
Родился
Аватар пользователя

Зарегистрирован: Вс фев 09, 2014 01:29:51
Сообщений: 11
Рейтинг сообщения: 0
BOB51 писал(а):
Стандартно принимается частота резонатора /12

Спасибо вам большое, перечитал датащит, и нашел там такие строки:
For timer operation (C/Tx# = 0), the timer register counts the divided-down peripheral
clock. The timer register is incremented once every peripheral cycle (6 peripheral clock
periods). The timer clock rate is FPER / 6, i.e. FOSC / 12 in standard mode or FOSC / 6 in
X2 mode.

Т.е. вы правы, наращивание таймера на еденицу происходит за 12 фаз/6 периодов при работе от встроенного тактового генератора. Тогда, при работе от внешнего тактового генератора, за 6 фаз/3 периода происходит наращивание, получается? :)
И да, чем так людям MCS-51 не нравится? :) Не уж то своей CISC архитектурой? :)

BOB51 писал(а):
В принципе надо анализировать вначале "соизмеримость" величин в задаче

Мне задержки нужны для работы с 1-Wire шиной данный, т.е., в среднем, величины будут такие как: 480uS, 60uS, 120uS, 15uS, изредка 1-2uS. Мне кажется, внутренний кварцевый резонатор, все таки, подойдет. А вы как считаете?)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с таймером на AT89S52-24PU
СообщениеДобавлено: Сб фев 15, 2014 19:39:14 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1484
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15235
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Согласно моего конспекта входная последовательность на внешнем счетном входе не должна превышать Fкварца/24...(точнее надо вчитываться в конкретный даташит).
Насчет "почему не нравится" - не модно, нормальная среда разработки только платная (за исключением атмелевского с51sam) или хакнутая и весьма легкое дизассемблирование по машинным кодам. А может еще чего... Cм. ответы модератора на мой аналогичного вида вопрос в теме viewtopic.php?f=62&t=59015 - даже в праве на отдельную ветку для MCS51 (как у АРМ, ПИКов и АВР) отказали!!! :cry:
По мне так все 8-разрядники имеют право на жизнь. А еще лучше работать с ними на равных, если удастся... 8)
Для микроLAN используются задержки на программных кольцевых счетчиках (если нет конвеера предвыборки команд).


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Работа с таймером на AT89S52-24PU
СообщениеДобавлено: Сб фев 15, 2014 19:48:00 
Родился
Аватар пользователя

Зарегистрирован: Вс фев 09, 2014 01:29:51
Сообщений: 11
Рейтинг сообщения: 0
А еще подскажите, возможно ли сбросить флаг переполнения таймера TF 0 через CLR TCON.5? Или как его вообще сбрасывать? :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с таймером на AT89S52-24PU
СообщениеДобавлено: Сб фев 15, 2014 20:46:12 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1484
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15235
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Сам сбростися при выполнении прерывания. 8)


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

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


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

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


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

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


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