| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
delay in RC
25.05.2009, 15:11
|
|
|
Вид на жительство
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
delay in RC
Всем привет!
Непонятность такая:
#fuses RC // то есть без кварца, припаяем RC
как расчитать частоту генерации?
если я хочу в программе сделать задержку, например в 1000мсек, то напишу delay_ms(1000);
Но ведь это относительно чего-то.
Что же прописать в #use delay(clock = ??????)
|
|
|
|
25.05.2009, 16:43
|
|
|
Вид на жительство
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Для определения частоты генератора, собранного на логических интегральных элементах пользуются формулой:
f = 0,48/R/C
А здесь как считать?
|
|
|
|
25.05.2009, 16:57
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
|
эта информация обычно пишется в даташите на сответствующий контроллер. По крайней мере у Микрочипа так.
|
|
|
|
25.05.2009, 17:12
|
|
|
Гражданин KAZUS.RUN
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
|
Сообщение от MisterDi
|
|
По крайней мере у Микрочипа так.
|
Да и у ATMEL...
|
|
|
|
25.05.2009, 18:39
|
|
|
Вид на жительство
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Там пишут, что выбирать сопротивление нужно из области 5-100 кОм.
конд примерно 22пФ
Частота зависит от напряжения питания, емкости и конденсатора.
Нарисовали как подключить, а формулы нет!
стр 42, 43.
|
|
|
|
25.05.2009, 23:00
|
|
|
Гражданин KAZUS.RUN
Регистрация: 24.06.2005
Сообщений: 530
Сказал спасибо: 262
Сказали Спасибо 216 раз(а) в 118 сообщении(ях)
|
Я не пойму сути вопроса. Вы используете RC-цепочку для генерации. Для этого нужно выставить соответсвующие фюзы. А при операции delay_ms(1000) компилятор сам отработает команду на задержку 1000 мс независимо от того, но какой частоте и в каком режиме работает генератор.
Или я всетаки чего-то не понял.
|
|
|
|
26.05.2009, 00:57
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
|
Сообщение от delay
|
|
Я не пойму сути вопроса. Вы используете RC-цепочку для генерации. А при операции delay_ms(1000) компилятор сам отработает команду на задержку 1000 мс. Или я всетаки чего-то не понял.
|
Человеку нужно вычислить R(ком)C(пФ)для требуемой частоты тактирования.
|
Сообщение от yellow87
|
|
Нарисовали как подключить, а формулы нет! стр 42, 43.
|
Потому что точно вы не вычислите или не подберёте точные RC а если и подберёте то ещё скажется неточность напряжения питания и технологические разбросы параметров самого микроконтроллреа.
Попробуйте измерить получающуюся частоту осцилограф (примерно) или частотомер.
Или проще. Написать програму с периодом в 1 секунду (допустим светодиод) а потом подобрать по вспышкам резистор...
вариантов море... включайте мозги.
|
|
|
|
26.05.2009, 07:10
|
|
|
Частый гость
Регистрация: 08.10.2006
Сообщений: 30
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 6 сообщении(ях)
|
|
Сообщение от yellow87
|
|
А здесь как считать?
|
У микрочипа в конце даташита идут графики. Вот там есть графики зависимости тактовой частоты от напряжения питания емкости конденсатора и сопротивления резистора.
|
|
|
|
26.05.2009, 10:23
|
|
|
Временная регистрация
Регистрация: 13.03.2006
Сообщений: 56
Сказал спасибо: 12
Сказали Спасибо 22 раз(а) в 9 сообщении(ях)
|
в даташите Clock Sources расписаны фузы.
тут калькулятор fuse AVR http://www.engbedded.com/fusecalc/
|
|
|
|
26.05.2009, 13:01
|
|
|
Вид на жительство
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Конечно же я выставил соответствующие фузы!
Компилятор не сможет отработать команду delay_ms(1000) если не использовать дериктиву #use delay(clock = ??????) Зная сколько раз в секунду генерирует импульсы тактирующий генератор, компилятор выбирает такие значения счётчиков чтобы получилась нужная задержка. Чтобы компилятор правильно подготовил код задержки ему нужна эта инфа. Поэтому в эту директиву нужно вписать действительную частоту генерации. Я мог бы померять её частотомером, осциллографом, написать программу со светодиодиком, но подумал, что есть формула, да и приборов под рукой нет.
Графиков в даташитах нет. Если вы их где-то и нашли, то скорее всего только в относительном виде (Частота прямопропорциональна напряжению и обратно пропорциональна сопротивлению и ёмкости)
Причём точность мне не нужна: устроит погрешность в 10%
Скорее всего никто не использует RC. Я вот тоже в первый раз.
PIC и шьётся, и работает. Но задержки далеки от реальных.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:00.
|
|