roboforum.ru

Технический форум по робототехнике.

Таймеры в микроконтроллерах

Таймеры в микроконтроллерах

Configurator » 28 ноя 2007, 15:03

Это топик о таймерах в микроконтроллерах.
Для чего нужны таймеры и как их настраивать.
Режимы работы, счетчики, сравнение, шим, прерывание от таймера.

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

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

avr123.nm.ru » 28 ноя 2007, 15:22

А кварц какой частоты ?

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

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

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

Re: 2PWM

Configurator » 28 ноя 2007, 15:29

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

Re: 2PWM

avr123.nm.ru » 28 ноя 2007, 15:36

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


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

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

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

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

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


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

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

Re: 2PWM

Configurator » 28 ноя 2007, 16:00

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

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

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

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

Re: 2PWM

Myp » 28 ноя 2007, 16:21

и мне и мне
научите как мне выставить внутренний генератор на 3686400
ато я тоже хочу такую суперчастоту

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



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

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

Re: 2PWM

Master » 28 ноя 2007, 16:27

Харош с новеньких прикалываться. :x

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

Re: 2PWM

Configurator » 28 ноя 2007, 16:42

Я не прикалываюсь. Смотрите рисунок

Изображение
Вложения
рисунок (2).rar
(9.18 КиБ) Скачиваний: 31

Re: 2PWM

avr123.nm.ru » 28 ноя 2007, 16:53

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

Configurator » 28 ноя 2007, 16:57

В задании 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

avr123.nm.ru » 28 ноя 2007, 17:03

Использовать кварц на 3686400 Гц

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


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

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

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

Re: 2PWM

SSG » 28 ноя 2007, 19:22

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

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

Re: 2PWM

Master » 28 ноя 2007, 21:10

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

Re: 2PWM

Configurator » 30 ноя 2007, 11:49

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

Re: 2PWM

avr123.nm.ru » 30 ноя 2007, 15:10

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.


Rambler\'s Top100 Mail.ru counter