ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
6 мая
1307573 Топик полностью
Vit (07.05.2023 22:05, просмотров: 170) ответил IBAH на таймеров больше нет... Может я неправильно понимаю бит UG? Его запись генерирует сразу переполнение? а если таймер выключен, то вызов прерывания будет отложен до включения
Вообще-то никто не мешает зачищать флаги прерываний перед запуском. А насчет конкретного бита - он для разного кремния чуток разный - где- то перезапускает таймер с прескалером, где-то генерирует события в терминологии ST (которые ещё не запросы прерывания). И сбрасывается он в разном кремнии по-разному - в одном софтверно, в другом аппаратно. 

Мне как-то нужно было выдавать импульсы определенной длительности, с установленным значением "зазора" перед следующим. А приходили они асинхронно. Дело было на MSP430, но потом оно на каком-то MKSZ спокойно запустилось. Выглядело это так, что был счетчик, который в фоне атомарно увеличивался (обычно инкрементировался - там было типа деление вычитанием), а в обработчике прерывания сравнения таймера декрементировался. При этом в фоне, если значение счетчика 0 и таймер выключен, то после увеличения счетчика его тут же декрементировал, а таймер запускал по новой на выдачу собственно активной части импульса, в обработчике сравнения перезаряжался на зазор, счетчик декрементировался, а по прерыванию после зазора при значении счетчика 0 выключался, иначе перезаряжался на активную часть и т.д. Соответственно там сама выдача в порт была ногодрыгом. Устраивало.