Проблематика. Прерывания - код который выполняется прерывая ход основной программы. Необходимо чтобы код обработки прерывания был максимально коротким, чтобы оказывать минимальное влияние на основную программу. Также необходимо обеспечить безопасность данных, чтобы исключить совместный доступ к данным (Тут зависит от микроконтроллера, ос и прочее). Например при записи прерывания с массив исключить работу с этим массивом.
Преимущества:
Разгружаем основной код программы. Исключается ожидание считывания данных:
Как результат повышается отзывчивость программы.
Недостатки:
Сам ничего не придумал, надо погуглить... Понравилось тут и тут.
Реализация
Для безопасной работы с данными от датчика буду использовать ArduinoRingBuffer.
Прерывания
Про прерывания в даташите изложено следующее
Ну и для очистки прерываний после срабатвания