Цитата(juvf @ Jun 21 2018, 09:37)
А они мне зачем? У меня есть полностью аппаратный таймер, зачем мне программный таймер и обработчик прерывания?
Допускаю, что есть эксклюзивные задачи, в которых одного таймера до 65 мс достаточно, но в общем случае вариант
с 1мс-прерыванием гораздо универсальнее.
В некоторых библиотеках я вообще пришел к двум/трем функциям
on_init() - один раз при инициализации МК
on_mainloop() - внутри mainloop`а
on_timer() - внутри 10мс-таймера
Решение гибкое, воспроизводимое на множестве камней и архитектур. Никаких дополнительный аппаратных требований,
типа таймер с предделителем таким-то и т.п.
Я не против исключений из правил, но их не стоит выдавать за правило.
Я на atmega8 вообще без аппаратных таймеров делал программный UART-TX тупо nop-ами формировал задержку,
и работало-ведь, но я же объявляю это нормой. Сделать софтовый 1мс таймер настолько просто, что грех от этого отказываться.
И мне не понятно зачем? ТС говорил, что у него какие-то критические секции есть... думаю, больное место там.