Ладно, послушала вас. Сделала что-то помимо выпрашивания денег.
А то реально ТУПЕЮ от скуки.
Осилила помигать диодом по прерыванию на таймере наконец-то. Как-то делала это на HAL, а щас на LL.
Оказывается на STM32 помимо заморочки с инитом всей переферии ручками, надо еще и из прерываний ручками выходить, пиздец...
Хорошо что у меня есть осциллограф и могла посмотреть 100кгц меандр на ножке.
Кароче надо LL_TIM_ClearFlag_CC1(TIM1); прописывать в обработчике перед выходом, чтобы сбросить флаг, а то без этого оно будет перезаходить в обработчик постоянно.
А на инит то сколько лапши:
LL_TIM_EnableCounter(TIM1);
LL_TIM_CC_EnableChannel(TIM1, LL_TIM_CHANNEL_CH1);
LL_TIM_EnableIT_CC1(TIM1);
Наверное есть какая-то умная книжка по LL. А то пока я просто читаю реддиты и прочие форумы, гугля типа бля не работает как заставить работать
Это не продуктивно
А на AVR все по битовым маскам с сдвигами делалось.
Типа
TCCR |= (1<<puk) | (1<<srenk) | (1<<loh);
Одной-двумя строками весь таймер можно было инитнуть. И из обработчиков оно выходит само и сбрасывает флаги с вектора прерывания само.
Разве что надо сейвить регистр состояний, иначе в некоторых обстоятельствах (если до вызова обработчика были какие-то мат вычисления например) может корруптнуть вычисление запаузенное во время перехода в обработчик
Мне понравилось кароче.