Последнее время привык использовать в приложениях аппаратный 32 битный счётчик с разрешением в 1 микросекунду.
На его базе очень удобно реализовать таймеры с выдержкой от единиц микросекунд до нескольких минут.
На STM32F1xx приходилось использовать в цепочке два 16 битных таймера, благо есть возможность выстраивания друг за другом.
На LPC17хх вообще без проблем - нативный 32 битный таймер в наличии.
Вот теперь прицениваюсь к Сэмам.
И что же наблюдаю? Имеем очередное чудо инженерной (плисоводской?) мысли в виде отсутствия каких либо прескалеров и навороченного блока таймеров.
В мануале написано, что у нас аж 9 каналов 16 битных таймеров, тогда как регистров в наличии только на 3
Первая непонятка.
Потом смотрю, вроде есть возможность заводить выход одного счётчика на вход другого, ага!
Идея такая: первый таймер играет роль делителя частоты ядра в 96 МГц до 1 МГц (прескалер) -> второй выполняет роль младших 16 бит -> и третий старших - в итоге получаем 32 бита.
Но для этого надо, чтобы после срабатывания функции сравнения и сброса счётчика в 0 выдавался импульс на следующее звено в цепочке, для его инкремента.
Однако в мануале указана только возможность установить в 1, сбросить в 0 или переключить состояние выхода таймера.
Про короткий импульс нет ни слова

Неужели всё это нагромождение таймеров не способно работать как один 32 битный свободный счётчик?

ЗЫ: ага, вроде придумал - ведь на каждый таймер мы имеем три compare регистра - А, В и С.
Тогда, к примеру, в регистр А заносим значение 0xFFFF, а в регистр C - 0x0, и устанавливаем функции для А - установить выход в 1, а для С - сбросить в 0.
И получаем короткий импульс при переполнении счётчика!
Что скажете, уважаемые?