OS_EnterInt ()
Должен вызываться при входе в прерывание. Большинство сервисов в OSA работают через косвенную адресацию. Этот сервис сохраняет значение FSR (для PIC18 сохраняется FSR0). Это уберегает его от случайного изменения кодом прерывания.
Должен вызываться в самом начале обработчика прерывания, сразу после описания внутренних переменных.
Только из прерывания
Нет
Нет
void interrupt isr (void) { static char a; OS_EnterInt(); // Сохраняем FSR /*...*/ // Обработка всех прерываний /*...*/ OS_LeaveInt(); // Восстанавливаем FSR } // Если присутствуют два обработчика прерываний, то // в каждом нужно вызывать сервисы сохранения/восстановления FSR void low_priority interrupt isrlo (void) { static int i; OS_EnterInt(); // Сохраняем FSR /*...*/ // Обработка всех прерываний /*...*/ OS_LeaveInt(); // Восстанавливаем FSR }