[an error occurred while processing this directive]
У меня в проге по этому адресу сидит процедура обработки прерывания.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Алексей ВМ
18 декабря 2002 г. 15:58
В ответ на:
По идее компилятор должен сохранить в начале вектора прерывания, который по адресу 0х04, хотя бы W, STATUS и возможно PCLATH... Что у тебя в программе получается по адресу 0х04?
отправлено bialix 18 декабря 2002 г. 15:57
Составить ответ
|||
Конференция
|||
Архив
Ответы
Как это? Сразу начинается твой Си код? Круто. Тогда делай вставочку на асме, чтобы гемморой полечить. А вобче странно это как то. У тебя обработчик только одного прерывания?
—
bialix
(18.12.2002 16:02,
пустое
)
Нет, виноват. Мой обработчик начинается с адреса 0х0D, а по адресу 0х04 сидит функция intlevel0.Сейчас брожу в отладчике MPLABа и вот что интересно- компилер в конце isr пытается восстанавливать PCLATCH, и примерно через раз не угадывает. Чтобы это значило?
—
Алексей ВМ
(18.12.2002 16:09,
пустое
)
PCLATH сохраняется в конкретной ячейке обычно доступной из любого банка данных (если речь о PIC16). Может твой обработчик каким-то образом затирает эту ячейку?
—
bialix
(18.12.2002 16:16, 78 байт)
Ещё что интересно - ячейка 0х66 доступна только в банке 0 ОЗУ. Может, её надо переопределить - все тогда будет хорошо?
—
Алексей ВМ
(18.12.2002 16:47,
пустое
)
Как раз этим занимаюсь. Уже интересно. Ф-ция intlevel0 как раз и занимается сохранением PCLATCH в ячейке с адресом 0х66. Только где эта переменная определена? А адреса моих переменных, указанные в файле *.map абсолютные или относительные начала какого-то регистра?
—
Алексей ВМ
(18.12.2002 16:33,
пустое
)
Какой у тебя проц? Твои адреса дб абсолютными
—
bialix
(18.12.2002 16:35,
пустое
)
Ответ: PIC16F877 Компилер - HT-PICC 8PL3
—
Алексей ВМ
(18.12.2002 16:38,
пустое
)
В даташит на пик16ф877 в пункте 12.11 описан пример как надо сохранять контекст(+)
—
bialix
(18.12.2002 17:06, 613 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru