Timers_one_for_all
Распределение аппаратных таймеров на платах Arduino для одновременной работы нескольких независимых источников прерываний и событий
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:062b2f73d29548a84adcacabd30b38ae6b3c6ec273b6f88a7d47d5461df61610Timers_one_for_all-3.0.1-062b2f73.zipОписание
Если в вашем проекте нужны одновременно несколько независимых таймеров — для звука, задержек, прерываний и периодических событий — столкнётесь с проблемой конфликтов: разные библиотеки и сам код борются за одни и те же аппаратные таймеры. Эта библиотека решает это через явное распределение: вы сами указываете через макросы, какие таймеры использовать, и библиотека гарантирует, что конкретный таймер не будет задействован, если вы его не объявили.
На платах AVR (Arduino Uno и подобных) доступно до 6 таймеров: Timer0 (8-бит, конфликтует с millis/delay), Timer1/3/4/5 (16-бит, только на Mega), Timer2 (8-бит с расширенным предделением). На SAM (Arduino Due) 11 таймеров — периферийные 32-битные на 84МГц, реал-тайм таймер на 29,4кГц и системный на 24 бита. Библиотека поддерживает полный набор функций: задержи, периодические повторы, секундомеры, прерывания по совпадению и переполнению. Требует C++17 для AVR и внимания при выборе таймеров, чтобы не конфликтовать с уже занятыми.