реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Микроконтролеры AVR. Джон Мортон. Ошибки в книге?
bookd
сообщение Nov 1 2012, 08:12
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 4-02-09
Из: Поволжье
Пользователь №: 44 403



Цитата(Valek @ Nov 1 2012, 11:00) *
У меня есть вопрос какраз по этой книге. Когда мы рассматриваем задержки с применением команд subi и sbci, мы расчитываем число которое нам нужно записать в регистры по формуле T*F/x. х у нас приведен в таблице для разных диапазонов времени и тактовой частоты. ВОПРОС, КАК МЫ ПОЛУЧАЕМ ЭТОТ Х?


Мы выбираем его произвольно, чтобы регистра (0..255) хватило для покрытия нужного нам времени в тиках T. А размер тика как раз и определяется числом x. Два числа T и x Зависят друг от друга, ну как 5*6, 3*10, 1.5*20 все эти пары дают один результат.


--------------------
Всеобщая дебилизация не повод наносить ущерб своему здоровью.
Go to the top of the page
 
+Quote Post
Valek
сообщение Nov 1 2012, 12:36
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 19-06-07
Из: Челябинск
Пользователь №: 28 542



В моей формуле Т - это время задержки (сек) которое мне нужно получить. F - это частота тактового генератора МК.
И того мы имеем две величины, а так же количество и разрядность регистров. Всетаки до конца не понятно как выбирать Х. Приведите пожалуйста пример расчета используя эти величины.
Go to the top of the page
 
+Quote Post
bookd
сообщение Nov 1 2012, 12:58
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 4-02-09
Из: Поволжье
Пользователь №: 44 403



Цитата(Valek @ Nov 1 2012, 15:36) *
В моей формуле Т - это время задержки (сек) которое мне нужно получить. F - это частота тактового генератора МК.
И того мы имеем две величины, а так же количество и разрядность регистров. Всетаки до конца не понятно как выбирать Х. Приведите пожалуйста пример расчета используя эти величины.


Если не брать в расчет время исполнения самих команд, тогда все вот так:
T = время задержки, пускай 5ms
F= тактвая частота, пускай 4MHz, период соотвтественно Tf = 1/4MHz = 0.25us

Если разделить время задержки на Tf = получим число которое надо записать в регистр 5ms/0.25us = 5000us/0.25us = 20000 или в 100 раз больше чем можнт поместиться в регистр

Пусть в регистр мы записываем 200, тогда 20000/200 = 100 это тот делитель на который нам надо поделить частоту, или x.

Конечно я все вывернул, теперь проверим цифры в прямом порядке.

T = 5ms, F=4MHz, x = 100. F/x = 4MHz/100 = 40KHz Tf1 = 1/40kHz = 25us
Число которое надо записать в регистр
N = T/Tf1 = 5ms/2.5us = 5000us/25us = 200 все.
Единственное что я тут произвольно выбрал это число 200. Все зависит от того, какое число можно записывать в x
В данном случае общий делитель равен 20000. Поэтому пара N*x должна обеспечивать 20000, и чему будут равны конкретные значения N и x неважно, конечно ограничение есть и оно одно значения в N и x должны быть в пределах 1..255.
Вроде все понятно.


--------------------
Всеобщая дебилизация не повод наносить ущерб своему здоровью.
Go to the top of the page
 
+Quote Post
Valek
сообщение Nov 1 2012, 13:44
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 19-06-07
Из: Челябинск
Пользователь №: 28 542



УРА!!! УРА!!! УРА!!!
Большое спасибо за помощь!!! Все очень понятно.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th August 2025 - 15:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016