[an error occurred while processing this directive]
|
Просто обслуживать прерывания надо быстро и лаконично, а для этого следует четко определить, ЧТО должно обязательно обработаться в темпе поступления прерываний (в ISR), а ЧТО может и должно быть отложено на основной цикл. Например, по приходу отсчета АЦП в ISR достаточно сложить байты в буфер, сбросить флаг готовности АЦП, переключить его канал, запустить следующее преобразование, и установить флаг готовности отсчета для основного цикла. А масштабировать, преобразовывать, линеаризовать, фильтровать, выводить на дисплей/в UART должен уже основной цикл, хотя фильтрация-децимация тоже возможна и в ISR при грамотном подходе и исполнении