И полезли прелести: при вызове функции в прерывании низкого уровня, програма не возвращяется из прерывания в основной цикл, куда оно лезет еще не разобрался, (пока толоько 2 неделю инструментарий осваиваю для PIC). Функция вызывается только в прерывании. Что может быть неправильно?
Сами прерывания прописаны согдасно датащиту:
- Код: Выделить всё • Развернуть
 void filter(void)
 {
 ...фильтр
 }
 #pragma code high_vector=0x08
 void high_vector(void)
 {
 _asm GOTO HighInt _endasm
 }
 
 #pragma code low_vector=0x18
 void low_vector(void)
 {
 _asm GOTO LowInt _endasm
 }
 #pragma code
 #pragma interrupt HighInt
 void HighInt(void)
 {
 ...Тело обработчика прерывания
 }
 #pragma interrupt LowInt
 void LowInt(void)
 {
 ...Тело прерывания
 filter();
 ...Тело прерывания
 }
Добавлено спустя 25 минут 35 секунд:
Еще вспомнил, может важно - активно switch-case используется, с ним уже в других компиляторах на других контроллерах натыкался на проблемы...





 
 

