Например TDA7294

Форум РадиоКот • Просмотр темы - Таймеры/счётчики в AVR
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср июл 30, 2025 23:39:28

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


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



Начать новую тему Ответить на тему  [ Сообщений: 1382 ]    , 2, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Ср сен 04, 2013 13:26:48 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 209
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1520
Рейтинг сообщения: 0
Цитата:
Считает только вперёд, флаг и прерывание выставляется когда переваливается через 255 ($FF) на 0 ($00)
Точно? (см. Phase Correct PWM и CTC)
Цитата:
таймер/счётчик0 и таймер/счётчик1 используют один и тот же предделитель
Точно? Или имелся в виду только сброс предделителя?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Ср сен 04, 2013 13:48:09 
Вымогатель припоя

Карма: 22
Рейтинг сообщений: 114
Зарегистрирован: Пн июн 14, 2010 13:07:29
Сообщений: 630
Откуда: Жуковский
Рейтинг сообщения: 0
У таймера 0 в меге8 нет режимов Phase Correct PWM и CTC. Считает только вперед.
Предделитель один на два таймера, но у него 4 выхода и для каждого таймера можно выбрать индивидуально частоту с предделителя: /8, /64, /256, /1024. Имелся ввиду, конечно, сброс предделителя - использовать с осторожностью.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Ср сен 04, 2013 15:22:35 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19745
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Да, речь конкретно про самый простой т/с0 в Мега8, соответствующий пруф (картинки из ДШ) представлен.
Прескалер у т/с1 и т/с0 общий, а вот мультиплексоры источника тактирования у каждого свой.
Интересно что он всегда считает с частотой clkI/O, даже ни один таймер не задействован. Хотя в процентном отношении по сравнению с ядром, он, наверное, жрёт не много.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Ср сен 04, 2013 16:39:39 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 209
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1520
Рейтинг сообщения: 0
Цитата:
У таймера 0 в меге8 нет режимов Phase Correct PWM и CTC. Считает только вперед.
Да. Согласен. В Евстифееве они описаны вместе, Т0 и Т2, но в даташите описания ШИМов и прочего нет. Впрочем среди фич упоминается
Цитата:
• Single Channel Counter
Frequency Generator
• External Event Counter
• 10-bit Clock Prescaler
Но в TCCR0 битов WGMx не предусмотрено.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Чт сен 05, 2013 09:20:59 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19745
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
COKPOWEHEU писал(а):
Но в TCCR0 битов WGMx не предусмотрено.

Наверное, имеется в виду программный :) Надо же для пафоса побольше умных слов понаписать.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Чт сен 05, 2013 11:03:42 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 209
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1520
Рейтинг сообщения: 0
Вот только программный генератор частоты не хватало городить на этом убожестве. :))) Ладно бы был хотя бы асинхронным, подобрать предделитель и считать секунды, так и этого нет. Я ему вижу всего несколько применений:
- измерение частоты на выводе Т0
- переключение задач в RTOS или ее подобии
- полупрограммный счет времени
Программные ШИМы и CTC за применение именно этого таймера не считаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пт сен 06, 2013 11:34:52 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Ср фев 29, 2012 01:58:32
Сообщений: 672
Откуда: Харьков, Украина
Рейтинг сообщения: 0
COKPOWEHEU писал(а):
- переключение задач в RTOS или ее подобии

А не слишком ли большой маразм городить RTOS на этом убожестве?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пт сен 06, 2013 12:25:48 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 209
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1520
Рейтинг сообщения: 0
На ATmega8-то, с чего бы? Да и необходимость ОСРВ определяется не мощностью контроллера а задачей. Например, нужно опрашивать клавиатуру, выводить данные на дисплейчик, UART и SPI. При этом что-то регулировать. Можно, конечно, реализовать все это вручную, но и RTOS в данном случае не помешает. Сами задачи простые, но их много и надо отслеживать чтобы они друг другу не мешали.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пт сен 06, 2013 14:29:52 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Ср фев 29, 2012 01:58:32
Сообщений: 672
Откуда: Харьков, Украина
Рейтинг сообщения: 0
А по прерываниям раскидать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пт сен 06, 2013 16:38:04 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 209
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1520
Рейтинг сообщения: 0
У обработчиков клавиатуры и дисплея своих прерываний нет.
Да и это был всего лишь пример


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пт сен 13, 2013 10:41:28 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Пн ноя 29, 2010 05:52:05
Сообщений: 349
Откуда: Иркутск
Рейтинг сообщения: 0
Gudd-Head писал(а):
а вот мультиплексоры источника тактирования у каждого свой.

А, что за мультиплексор такое (шо цэ такэ?!)
Вы написали про источник тактирования -
Источник тактирования -это генератор который выдаёт импульсы определённого времени и счётчик их считает.
А что такое мультиплексор объясните пожалуйста и для чего он нужен в таймерах.
Не раз слышал про про выражение -мультиплексор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймеры/счётчики в AVR
СообщениеДобавлено: Пт сен 13, 2013 10:51:17 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19745
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Импульс писал(а):
А, что за мультиплексор такое (шо цэ такэ?!)

2 трапеции на этой картинке — мультиплексоры тактовых импульсов Т/С1 и Т/С0:
Изображение
А далее я посылаю вас в жопу Вики: http://ru.wikipedia.org/wiki/Мультиплексор_(электроника) :)))
Импульс писал(а):
для чего он нужен в таймерах.

В таймерах он нужен для того, чтобы:
а) иметь возможность выбора источника тактовых импульсов (внешний/внутренний) и
б) иметь возможность выбора коэффициента деления (прескалера) оных.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Знатоки ATMega, как настроить таймер?
СообщениеДобавлено: Вс сен 22, 2013 15:06:47 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:06:17
Сообщений: 50
Рейтинг сообщения: 0
Всем доброго времени суток, сильно не пинайте-первая самостоятельная работа с МК.
Есть Мега2560, пишу прогу в ассамблере (С не владею), требуется внести байт настройки в TCCR1B (аналогично можно в любой другой регистр), компилятор ругается на превышение значения первого операнда:

out TCCR1B, TEMP1 ; НАСТРОЙКА ПРЕДДЕЛИТЕЛЯ НА 1024

и это понятно, ведь первым операндом в операции OUT может быть число от 0 до 63, а адресуемый регистр TCCR1B имеет адрес 0х81. Подскажите, как правильно кинуть в него данные? По аналогии и в любой другой регистр с адресом выше 0х3F (63 в дес.виде), если 0х3F предел адресации команды OUT.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Знатоки ATMega, как настроить таймер?
СообщениеДобавлено: Вс сен 22, 2013 16:37:21 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 43
Зарегистрирован: Вт апр 12, 2011 18:38:19
Сообщений: 838
Откуда: с Земли
Рейтинг сообщения: 1
Известный косячек... Используйте инструкции STS/LDS вместо OUT/IN для регистров с адресом больше 63. У AVR все "лежит" в одном адресном пространстве.
У Атмелов был даже аппнот с макросом, который сам подсовывал нужную инструкцию. Щас уже не помню какой, тк на AVR забил.
UPD: нашел http://www.atmel.com/Images/doc2550.pdf и http://www.atmel.com/Images/AVR001.zip

_________________
Все будет только лучше, в крайнем случае - хуже.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Знатоки ATMega, как настроить таймер?
СообщениеДобавлено: Вс сен 22, 2013 17:01:01 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:06:17
Сообщений: 50
Рейтинг сообщения: 0
Вот спасибо большое! Все пошло сразу! Не учел,дурья голова,что адреса старше 63 располагаются в RAM))) А насчет скрипта,он ведь на СИ,разве я могу его вставить в программу на ассамблере? Огромное спасибо за подсказку! :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Знатоки ATMega, как настроить таймер?
СообщениеДобавлено: Вс сен 22, 2013 17:08:54 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 43
Зарегистрирован: Вт апр 12, 2011 18:38:19
Сообщений: 838
Откуда: с Земли
Рейтинг сообщения: 0
Архивчик смотрели? Как раз для ассемблера сделаны макросы, в Си и так все хорошо :)

_________________
Все будет только лучше, в крайнем случае - хуже.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Знатоки ATMega, как настроить таймер?
СообщениеДобавлено: Вс сен 22, 2013 17:47:21 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:06:17
Сообщений: 50
Рейтинг сообщения: 0
Понятно,будем пробовать :)
И попутный вопросик: что где требуется прописать,чтоб заработали внешние (и внутренние) прерывания. В регистр TCCR я внес настройки режима СТС. В регистр EIMSK пытаюсь внести 0b00000001 для разрешения работы INT0 :

LDI TEMP1, 0b00000001
STS EIMSK, TEMP1

Но при прогоне в симуляторе AVRStudio моя единичка ну никак не хочет записываться в EIMSK :cry: В чем может быть беда? И нужно-ли настраивать регистры EIСRA, EIСRB и MCUCR для запуска работы INT0?
Поборол я его)) Так вот он заработал:

LDI TEMP1, 0b00000001
OUT EIMSK, TEMP1

Таймер запустить удалось,но не происходит прерывание по совпадению((( В OCR1A внес требуемый интервал, настроил предделитель на CLK/1024 в TIMSK внес 2 - установил бит OCIE1A в единицу (прерывание по равенству TCNT1 и OCR1A), включил глобальные прерывания SEI, но чуда не случилось. Счетный регистр переполняется свыше OCR1A а прерывание не поступает :( В чем я ошибся?
Включил глобальные прерывания командой SEI. Подпрограмма запуска таймера у меня вызывается обработчиком прерывания с лапки INT0, но при прижатии ноги INT0 к земле прерывания не возникло :( И на будущее,как настроить прерывания по ногам PCINTn?
Ну и совсем нубский вопрос: что означает запись (1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0) или (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)? Как расшифровать эти иероглифы? :oops: :)) Ну и остальные на них похожие)) Я верно понимаю, что это операции установки отдельных битов регистров портов ввода-вывода в единицу?


Последний раз редактировалось Ghostgkd777 Вс сен 22, 2013 22:36:13, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Знатоки ATMega, как настроить таймер?
СообщениеДобавлено: Вс сен 22, 2013 20:33:07 
Опытный кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 43
Зарегистрирован: Вт апр 12, 2011 18:38:19
Сообщений: 838
Откуда: с Земли
Рейтинг сообщения: 0
По XMega не подскажу. Я, как уже писал, забил на AVR уже пару лет назад. Те я использую пока только "малоногие" тиньки, и в будущем, скорее всего, откажусь и от них. Скажем, XMega не может тягаться с ARM ни по производительности, ни по цене. Однако не стоит начинать холивар.

Ghostgkd777 писал(а):
Ну и совсем нубский вопрос: что означает запись (1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0) или (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)? Как расшифровать эти иероглифы? :oops: :)) Ну и остальные на них похожие)) Я верно понимаю, что это операции установки отдельных битов регистров портов ввода-вывода в единицу?

А (1<<PB7) означает единичку, сдвинутую на позицицю PB7.
(1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0) - это объединенные операцией ИЛИ такие единички, что в результате даст 0b11000011 или 0xC3.
Все эти конструкции вычисляются компилятором на стадии сборки и представляют собой ничто инное, как константы. Такая запись просто улучшает читабельность текста программы.

_________________
Все будет только лучше, в крайнем случае - хуже.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Знатоки ATMega, как настроить таймер?
СообщениеДобавлено: Вс сен 22, 2013 20:52:35 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:06:17
Сообщений: 50
Рейтинг сообщения: 0
Спасибо,я примерно так и понял))
Я мучаю не ХМегу а обычную ATMega2560. Понимаю,что не с того "жука" начал освоение АВР, но обстоятельства диктуют свои правила))
Чтож,может еще кто подскажет, почему в EIMSK не хотят писаться байтики...
С EIMSK разобрался. Требовалось заносить данные командой OUT, а не STS, как я пытался.
После занесения единички в нулевой разряд EIMSK мои прерывания заработали, но почему-то не INT0, а INT1! Если выставить единичку в первый бит EIMSK, начинает работать прерывание INT3! почему не по порядку,как должно было быть? :(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Знатоки ATMega, как настроить таймер?
СообщениеДобавлено: Пн сен 23, 2013 05:56:33 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4332
Откуда: Ижевск
Рейтинг сообщения: 0
Таблица векторов прерываний правильно составлена?
СпойлерИзображение


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

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


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

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


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

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


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