Подскажите хорошую книгу по программированию таймеров Mega2560

Всем привет!
Спустя 4 года вернулся к ардуине. Теперь на мега2560. Задача формирования заданных интервалов с управлением внешними ключами с активацией по внешнему прерыванию.
3 канала управления.
Требуется инфа с примерами скетчей по программированию таймеров 1,3,4,5 с параллельной работой. Идеально бы сделать сигнал управления ключом на порте “работа-пауза” одним таймером с заданием длительности работы и паузы, но пока не вышло. Также важно, чтобы фазы сигналов не “плавали”.

Формулировка вопроса предполагает, что таких книг много и надо подсказать “хорошую”. К сожалению, я подозреваю, что книг по программированию именно Меги вряд ли больше одной-двух, а чтобы именно по таймерам - боюсь таких вообще нет.
Самая хорошая книга на эту тему - это даташит от Меги2560

2 лайка

Добавлю
Думаю что самый очевидный путь - это найти книжку(книжки) про Уно и разобраться с ее таймерами. Такие руководства точно есть и не одно.

Освоившись с общими принципиами работы таймеров в АВР, переходите к таймерами Меги, изучая их по даташиту.

http://microsin.net/programming/avr/atmega2560-timers-counters.html

Все вроде подробно, но написано путано, так что даташит нужен под рукой стопудово

1 лайк

Да, uno и был, но сейчас задача сложнее и сигналов управления поболее.

Это руководство на русском есть. Не хватает практических примеров скетчей для сложных задач реального времени на таймерах.

И чего ты со скетчами будешь делать, если ты всё равно не понимаешь, что там написано? Это не та вещь, в которой можно разобраться интуитивно. Читай даташит, там есть всё, что надо.

2 лайка

Тогда это вопрос для раздела “Ищу исполнителя”.

  1. так как AVR не имеет контроллера прерываний - приоритет прерывания определяется исключительно номером вектора. Поэтому решать задачи “реального времени” - скажем так - непросто.
  2. Я не хочу расстроить ТС, но сам факт вопроса наводит на мысль о неточностях в задаче. Хочется поинтересоваться характерными временами задачи: какие длительности импульсов? Какие частоты? Какие желаемые крутизна и длительность фронтов?

у меня наверно что-то с глазами… но по ссылке русский и есть. Вам чего еще-то надо?

Влад, да сама поставновка вопроса показывает, что ТС не в теме. Куча умных слов:

чтобы описать обыкновенный ШИМ???

Опишите своими словами задачу, пожалуйста, без этих заумных слов про “задачи реального времени”.
Если вы не в курсе, в микроконтроллере (в отличии от компьютера) - практически все задачи выполняются в реальном времени.

Пожалуйста, требуется формирование импульсов заданной частоты и длительности с запуском от внешнего аппаратного прерывания. Таймеры отмеряют интервалы, работать они должны параллельно, так как 3 канала управления.
Я не программист (есть небольшие навыки прошлых лет в рамках ВУЗа), поэтому примеры очень даже помогут разобраться. К примеру, ушло 2 часа на то, чтобы понять, что канал А и канал B таймера 16бит не могут работать раздельно. Это в даташите явно не описано. Видимо есть и другие ньюансы, посему и создал тему.

В даташите нет никаких каналов. Есть цифровые компараторы (output compare) A и B. И они работают раздельно, и это описано явно.
Clipboard 1

И два если два часа для тебя это много, то просто забей. Программист над проектами работает месяцами на полном рабочем дне.

Если нет привычки работать с даташитом и он не понятен, то в дополнение к даташиту можно использовать аппноту. Больше уж точно ничего не нужно.

2 лайка

Там какие-то непонятные кракозябры

Спойлер
ISR_TIM1_CAPT:
push r16
in r16,SREG
push r16
clr r16
sts TCNT1H,r16 ; Write Temp register
sts TCNT1L,r16 ; Clear the 16 bit register
call TOGGLEPIN
pop r16
out SREG,r16
pop r16
reti

А нужно конкретно скетчи! )))

Спасибо, где ж Вы раньше были

Давайте уж по простому.
Импульс заданной частоты и длительности - это ШИМ?

Какие интервалы? Это не те, что “частота и длительность” выше?

А лучше нарисуйте сигналы и зависимости…

щас трёх уровневый стробирующий увидим )))