roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 22:50

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




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Таймеры в микроконтроллерах
СообщениеДобавлено: 28 ноя 2007, 15:03 
Не в сети

Зарегистрирован: 28 ноя 2007, 14:57
Сообщения: 11
Это топик о таймерах в микроконтроллерах.
Для чего нужны таймеры и как их настраивать.
Режимы работы, счетчики, сравнение, шим, прерывание от таймера.

Использование мастеров для настройки таймеров.

1. Вот пример настройки таймера AVR с помощью мастера
http://avr123.nm.ru/z6.htm

2. Настройка таймера и прерываний для ШИМ сделана с помощью мастера CVAVR
http://www.avr123.nm.ru/z8.htm
Исходники и симуляция в VMLAB - ATmega8 ATmega16

Книги по микроконтроллерам и электронике
http://avr123.nm.ru

Апноут ATMEL по использованию и настройке Таймеров AVR
http://www.gaw.ru/pdf/Atmel/app/avr/AVR130.pdf

"Setup and Use the AVR Timers"

Он-лайн переводчик translate.ru по-прежнему доступен !


3. Пример настройки таймера в ATmega48 для генерации 2 ШИМ сигналов - исходник
с комментариями и симуляция в AVR studio с хитростью для контроля временных интервалов.

в прицепе.

========================================================

На ATmega48 делаю 2 ШИМ. Все по ДШ.
Частота 50 Гц.

Код:
Код:
int impulse = 0x80;

DDRD=0x60;

TCCR0A=0xB3;
TCCR0B=0x05;

TCNT0=0xB8;

OCR0A=0x00;
OCR0B=0x00;

while(1)
{
OCR0A=impulse;
OCR0B=impulse; 
}


В итоге все держится на 32 Гц. И чтоб не делал, частота не меняется. Подскажите, пожалуйста! :cry:


Вложения:
m48_pwm_timer0.rar [7.96 КиБ]
Скачиваний: 32
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 15:22 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
А кварц какой частоты ?

Ваш выкладки напишите.

Сконфигурируйте ШИМ мастером ICC - http://www.avr123.nm.ru/z6.htm

VMLAB - Симулятор полезен в отладке !
http://kazus.ru/forum/topics/f_58817.html#58817


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 15:29 
Не в сети

Зарегистрирован: 28 ноя 2007, 14:57
Сообщения: 11
У меня не кварц, а внутренний генератор.
Выставлен на 3686400. Так делить легче:
3686400 / 1024 / 72 = 50 Гц. (По Вашему курсу)
В ICC AVR нет конфигурации для ATmega48 :cry:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 15:36 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Configurator писал(а):
У меня не кварц, а внутренний генератор.
Выставлен на 3686400.


КАК ??? НАУЧИТЕ !!!

У вас какой то супер-пупер и экстра МК ???

Еще не прояснилось у вас как бы VMLAB показал вашу ошибку ?

А на какой частоте работают МК в симуляторах ?

Добавлено спустя 2 минуты 55 секунд:
Configurator писал(а):
В ICC AVR нет конфигурации для ATmega48 :cry:


СТРАННО ! У МОЕГО ЕСТЬ !

У вас всё какое то особенное! и ICC особенный и даташит со странной частотой генератора. :o


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 16:00 
Не в сети

Зарегистрирован: 28 ноя 2007, 14:57
Сообщения: 11
В ICC вот какие есть модели МК:
8, 16, 32, 64, 103, 128, 161, 162, 163, 323, 603

Какая сдесь может быть ошибка?
В мастере выставляю Clock 3686400.
Clk ставлю 1024.
TCNT0 выставляю в 178.

Что, не 50 Гц должно получится?

Причем сдесь VMLAB? Я говорю же, все по ДШ делаю и пользуюсь мастером в CVAVR.
Если написано в документации, то это должно соответствовать 'в натуре', так сказать. Вот и проверяю осцилографом и еще до кучи, чтоб не ошибиться, мультиметром.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 16:21 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
и мне и мне
научите как мне выставить внутренний генератор на 3686400
ато я тоже хочу такую суперчастоту

ато блин фьюзами неудобные частоты выставляются...



раз уж у вас есть осциллограф то померьте заодно тактовую частоту МК =)
ну так на всякий случай, мало ли чо там... :lol:
исходя из шима 32 Гц
32*72*1024 частота кварца примерно 2.5 мГц

Мур, не беспредельничай! Авр123 - ему простительно, он всегда так разговаривает и по-другому не умеет - все привыкли...;)
<Digit>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 16:27 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Харош с новеньких прикалываться. :x

Добавлено спустя 5 минут 1 секунду:
Наверное частота
3,686400
или
36,86400
CVavr не позволяет выставить частоту выше 40 МГц


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 16:42 
Не в сети

Зарегистрирован: 28 ноя 2007, 14:57
Сообщения: 11
Я не прикалываюсь. Смотрите рисунок

Изображение


Вложения:
рисунок (2).rar [9.18 КиБ]
Скачиваний: 31
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 16:53 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Master писал(а):
Харош с новеньких прикалываться. :x


Он сам над собой прикалывается !

Я ему уже сказал выше что мега48 есть в мастере ICC - он продолжает УПИРАТЬСЯ:

Configurator писал(а):
В ICC вот какие есть модели МК:
8, 16, 32, 64, 103, 128, 161, 162, 163, 323, 603


Думаю и картинка врядли его убедит ...

Изображение

Configurator писал(а):
- В мастере выставляю Clock 3686400.
- все по ДШ делаю ...
- У меня не кварц, а внутренний генератор.


Покажите ГДЕ в ДАТАШИТ указана частота для внутреннего генератора 3686400

Добавлено спустя 6 минут 9 секунд:
Configurator писал(а):
Я не прикалываюсь. Смотрите рисунок
Изображение


И где тут написано что это внутренний генератор ???

Configurator писал(а):
Причем сдесь VMLAB?


Я надеюсь вы хоть чуть чуть подумаете ! Вопросы наводящие задал ведь. Повторю:

На какой частоте работает МК в симуляторе ?

А реальный МК на какой частоте работает ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 16:57 
Не в сети

Зарегистрирован: 28 ноя 2007, 14:57
Сообщения: 11
В задании 6 курса, Вы красным по белому пишите. что некруглые частоты используются для точного значения частоты.
Цитата:
Внимание ! Мастер вычислил значение в регистре TCNT0
с которого должен считать Таймер_0 для переполнения 50 раз в секунду - это 0xB8 или 184 в "нормальном" == десятичном виде.

Давайте посчитаем, проверим вручную:

3686400 Гц / 1024 / (256-184) = 50 Гц ровненько!

(256-184) означает что таймер будет считать от 184 до 255 и после следующего добавления 1 к 255 в регистре возникнет 0 и произойдет переполнение таймера и возникнет соответствующее прерывание, если конечно оно разрешено и разрешены прерывания глобально - т.е. бит I в регистре SREG установлен.

0 это аналог 256 в положительном байте -
Таймер_0 ведь 8-ми битный


Если я ошибаюсь, подскажите, как получить 50 Гц?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 17:03 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Использовать кварц на 3686400 Гц

Добавлено спустя 1 минуту 21 секунду:
Configurator писал(а):
В задании 6 курса, Вы красным по белому пишите. что некруглые частоты используются для точного значения частоты.


Но надеюсь там не написано что ВНУТРЕННИЙ ГЕНЕРАТОР может давать такие частоты !

Вы страницу курса http://avr123.nm.ru/02.htm "Устройство AVR" - читали ?

Там в начале есть раздел "Вот основные параметры AVR ... " и указаны частоты генератора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 19:22 
Не в сети
Аватара пользователя

Зарегистрирован: 15 янв 2007, 19:23
Сообщения: 1058
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК
avr123.nm.ru писал(а):
Вы страницу курса http://avr123.nm.ru/02.htm "Устройство AVR" - читали ?

Во-во. Классиков читать надо! :)
Внутренний генератор имеет небольшой набор фиксированных неточных частот. То что вы меняете в программе подразумевает, что вы такую частоту обеспечите внешним кварцем. Если кварца нет, то частота внутренего генератора определяется значениями фьюзов (см. в даташите).

_________________
I live My life!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 28 ноя 2007, 21:10 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
2 Configurator
Суммируя все вышесказанное:
1. Частота которая выставляется в CVavr не есть частота внутреннего генератора, а частота на которой МК будет работать без разницы от внутреннего или внешнего генератора, т. е. если у меня стоит кварц на 16 МГц, то я выставляю 16 МГц, если у меня предполагается работа от внутреннего генератора на 1 МГц, то я выставляю 1 МГц.
2. Для того чтобы у тебя работала прошивка данная в Курсе, то тебе нужен внешний кварц на указанную частоту + 2 конденсатора (хотя очень часто видел что их не ставят, но лучше с ними).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 30 ноя 2007, 11:49 
Не в сети

Зарегистрирован: 28 ноя 2007, 14:57
Сообщения: 11
Честно сказать, я так и невкурил, как мне выставить точную частоту 2ШИМ в 50 Гц.
Этим что, никто не занимается? Ребят, вы как с Луны свалились.
Вы можете подсказать, как это по шагам сделать, хоть примерно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2PWM
СообщениеДобавлено: 30 ноя 2007, 15:10 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Strijar писал(а):
Я сильно не задумываясь - выставил минимальную частоту таймера - повесил в обработчике "мигалку" и засек секундомером частоту. Потом вывел из нее частоту контроллера. Оказалось 8мгц. Залез в даташит и убедился, что по умолчанию это так и есть.


Как раз таки и НЕТ !

Цитата:
Default Clock Source
The device is shipped with internal RC oscillator at 8.0MHz and with the fuse CKDIV8 programmed,
resulting in 1.0MHz system clock.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2, 3  След.

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


Кто сейчас на конференции

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


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO