прежде всего вам нужно знать, что прерывание - это аппаратное обеспечение ... каждый микроконтроллер имеет схемы прерывания для прерывания процессора при определенных c событиях ( таймер переполнен, сигналы контактов изменены , ... et c) ... так что это аппаратные функции
так что, если вам нужно больше прерываний, как вы спрашиваете? .. наиболее распространенное решение - использовать операционную систему реального времени (RTOS) ... одно из преимуществ RTOS, которое дает вам возможность делать любое количество прерываний ( программное прерывание ) сколько угодно раз
обратите внимание, что RTOS - это немного продвинутая версия c, и вам нужно немного изучить, чтобы понять, как она работает и как ее использовать ... но в качестве краткой информации что делает RTOS .. Сначала вы должны разделить ваше программное обеспечение на небольшие задачи ( например, задача, которая печатает данные на ЖК-дисплее, задача для получения данных от UART, задача для движения, если кнопка нажата или нет, ..et c) и дайте каждой задаче pri ority ... и есть что-то в RTOS, называемое scheduler (просто алгоритм), которое выбирает, какая задача будет выполняться на ЦП сейчас, если задача готова или нет, priorty и Тип расписания algorthim
RTOS обрабатывает задачи как отдельные программы и заставляет их взаимодействовать друг с другом, а RTOS имеет гораздо больше возможностей ... поэтому, когда вы ее изучите, она упростит и повысит эффективность разработки встроенные программы
пример работы RTOS с atmega 32
- Free RTOS - это открытая волшебная RTOS и немного сложная и надежная
- OSA RTOS это очень простая RTOS, которую вы могли на ней изучить