Не подскажете, как это удобно написать? Допустим в цикле делаются вычисления, потом отправляются по spi, ждем дырга exti, делаем что-то, заходим на новый круг. Как не срать в 3 разных места? Пока мне приходит в голову только static функция с несколькими точками входа, типа КА И вызываем в каждом прерывании одну и ту же функцию
Комментарии: 9
Vga
не совсем понимаю что нужно и что значит "срать в три места"
Serge
Ну мне нужно 3 куска кода в три места писать, а по смыслу эту одна функция
Vga
Покажи примером
Serge
1. Установить параметры конверсии 2. Пхнуть во внешний ацп по spi, заодно забрать предыдущие результаты преобразования 3. Дождаться конца преобразования по дыргу ноги
Vga
ну а что мешает собрать логически в одну кучку (один модуль, скажем) функцию и обработчики прерываний?
Serge
Да ничего, так и делаю сейчас. Но некрасиво: по смыслу-то это одна ф-я с несколькими точками следования
Vga
боюсь, в С такой абстракции нету
Serge
Нашёл, таки это называется continuation в этих ваших computer science. Чуть не изобрел protothreads :)
Serge
https://habr.com/ru/articles/326320/