Как работать с таймерами ATmega48PA на C/C++ (Atmel Studio 6.2) ?
Нужен пример кода настройки для таймера 0 с прерыванием по сравнению и максимальным коэффициентом деления, а также самого вектора. (желательно с коментариями)
Или хотя бы для любого другого таймера ATmega48PA.
В сети полно примеров для ATmega8 и ATmega8A, а ATmega48PA как будто не существует!
Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
Добавлено: Вс июл 15, 2018 08:23:11
Опытный кот
Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42 Сообщений: 744 Откуда: Караганда, Казахстан
Рейтинг сообщения:0
Меги 48-88-168 и 328 отличаются только объемами памяти, периферия у них одинаковая, есть даже общий даташит на все 4 МК.
Я недавно занимался энкодерами с плохими контактами, задачу решал с применением таймера. Начал на 8-й Меге, потом, по просьбе коллеги sunjob спортил это дело на 328-ю, окончательный результат - вот. Там работа с Timer/Counter 2, использован режим Clear Timer on Compare Match (CTC). Может поможет?
_________________ Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Добавлено after 2 hours 28 minutes 43 seconds: Почему у меня в Протеусе интервал мигания светодиода достигает максимума при значении OCR0A = 130 а потом при 131...132... и т.д. начинает мигать чаще?
К сожалению железо будет ехать с Али ещё месяц, если вообще не потеряется!
А кроме Протеуса, есть ещё какие нибудь более продвинутые эмуляторы, например что бы была эмуляция подведения питания к выводам контроллера, эмуляция кварца, и тп.?
Последний раз редактировалось DENIS451 Пн июл 16, 2018 09:39:29, всего редактировалось 1 раз.
Например, в случае с AVR, выполнение других прерываний, флаги которых были установлены во время задержки в прерывании, произойдёт только после окончания задержки. Таким образом, нарушится главная идея работы с прерываниями - мгновенная (почти) реакция на событие.
Да и основной цикл при этом простаивает, МК не выполняет полезной работы. Если задержки в основном цикле, а прерывания короткие, то во время задержек МК сможет выполнять какие-либо операции.
_________________ Этот пост оказался полезен? Не поленись, нажми слева!
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Например, в случае с AVR, выполнение других прерываний, флаги которых были установлены во время задержки в прерывании, произойдёт только после окончания задержки. Таким образом, нарушится главная идея работы с прерываниями - мгновенная (почти) реакция на событие.
Да и основной цикл при этом простаивает, МК не выполняет полезной работы. Если задержки в основном цикле, а прерывания короткие, то во время задержек МК сможет выполнять какие-либо операции.
если есть несколько прерываний, если на них нужно быстро реагировать, то да. Но если у тебя одно прерывание, то почему бы там не поставить задержку?
Но если у тебя одно прерывание, то почему бы там не поставить задержку?
можно придумать 100500 причин сделать плохо, но лучше подумать о том, почему надо делать хорошо.
не отвечайте, если у вас прерывания поступают 1 раз в час от идеального генератора импульсов, потому что в других случаях за время задержки может произойти не одно событие, генерирующее такой же запрос прерывания, в итоге сразу после завершения его обработки произойдет повторный вход в обработчик и так до полного удовлетворения. главный цикл в это время будет практически простаивать.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: Как работать с таймерами ATmega48PA на C/C++ ?
Добавлено: Чт июл 19, 2018 05:09:32
Опытный кот
Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42 Сообщений: 744 Откуда: Караганда, Казахстан
Рейтинг сообщения:0
ozonn писал(а):
а если нет других прерываний?
Сейчас нет. Потом, в процессе отладки или доработки понадобится второе, и приплыли. Поэтому лучше сразу привыкать делать все правильно. А правильная работа с прерываниями, по-хорошему, должна строиться на базе очень коротких прерывающих программ. Получил прерывание, снял что-либо из регистров оборудования (ну или выдал что-то в регистры), произвел коротенькие вычисления, (может быть) где-то отметился, и все, выходи. А основная программа должна мониторить те самые переменные, в которых отмечаются прерывающие программы и, при появлении отметки, выполнять какие-то большие действия. В том числе, при нужде, и подождать может, хотя, при грамотном построении всей программы, это можно возложить на таймерное прерывание. Таймерная программа прерывания подсчитывает время, как набежит нужная для задержки величина, таймерная программа отметится где надо, а основная, по получению этой отметки, поймет, что нужное время задержки прошло.
_________________ Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Сейчас нет. Потом, в процессе отладки или доработки понадобится второе, и приплыли.
а если и потом не понадобится?
я это все к тому, что надо все делать с умом. Делал я как-то ампервольтметр для своего ЛБП. Использовал два прерывания, АЦП и таймер, для индикации. Основной цикл пустой. Теперь вопрос: откуда тут могут взяться еще какие-то прерывания?
в том числе задавать вопросы и высказывать предположения. есть правильный подход, который ВСЕГДА дает хороший реззультат, а есть подход, который дает результат ЕСЛИ. знать о таком подходе - плюс, а пользоваться им повседневно на регулярной основе - минус.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения