Как работать с таймерами 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)
Сейчас нет. Потом, в процессе отладки или доработки понадобится второе, и приплыли.
а если и потом не понадобится?
я это все к тому, что надо все делать с умом. Делал я как-то ампервольтметр для своего ЛБП. Использовал два прерывания, АЦП и таймер, для индикации. Основной цикл пустой. Теперь вопрос: откуда тут могут взяться еще какие-то прерывания?
в том числе задавать вопросы и высказывать предположения. есть правильный подход, который ВСЕГДА дает хороший реззультат, а есть подход, который дает результат ЕСЛИ. знать о таком подходе - плюс, а пользоваться им повседневно на регулярной основе - минус.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Сейчас этот форум просматривают: Just_Fluffy и гости: 76
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения