Мне указали на желаемость доработки моего старого проекта на 51м,
его готовы наконец в серию пускать. Бляяяяя, я вчера на этом 51м
упарился. И пока не могу победить косяки. После армов с их
невъебенной периферией даже топовый силабс (ф120) - какой-то
огрызок )))... Из свежего, связанного с бедностью периферии...
Решил интерполяцию величины ШИМ перенести в прерывания pca0 (высший приоритет, ничто не мешает, требуется это в 15 раз реже, что хорошо). До этого в гиперлупе по флажку 100мкс делалось. Но там же еще всякое делается, что приводит к некоторой дерганности, которая с новыми требованиями уже не устраивает.. ранее устраивало, иначе бы давно на АРМ всё переделал, а сейчас закуплены компоненты и платы.
Ну тупо ту же функцию перенес в процедуру обработки прерывания. Делов-то.. переменные там "свои собственные", ни с чем не пересекаются, регистры в прерываниях пушатся либо с помощью using свои отельные используются, мешаться не должно.
Теперь если в гиперлупе я вызываю задержку (например по нажатию на кнопку), то изредка ШИМ на один период включается на максимум. Возился вчера с перерывами часов 10, весь дизасм прошерстил, не нашёл причину. АРМ таких загадок мне не создавал.