Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не работает external interrupt
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
A. Fig Lee
Заложил вроде хороший чип.
Все, что надо. Не могу добится срабатывания прерывания на порту B.
sad.gif
В конфигурации задизейблил аналоговые входы порта Б,
в main делаю:

ANSELB = 0;
TRISB = 0xFF;
INTCONbits.INT0IE =1 ;
INTCONbits.GIE =1;

должно быть достаточно для прерывания. Не работает. sad.gif
Ручная установка INTCONbits.INT0IF вызывает прерывание.
Пробовал прерывания "interrupt-on-change" RB4-RB7, пробовал
RB1 external interrupt, не срабатывает.
Если разрешить перифирийные прерывания и от таймера 0,
попадаю в прерывание, с порта B никуда,
и флаги в INTCON не взводятся, хотя должны даже без попадания в прерывание.
Аналоговые входы отключил, все остальные периферийные элементы
вроде бай дефоулт отключены. Что может быть?

Разочаровался в майкрочипе. Документации как порты устроены не нашел.
СТМ32? Атмел? Что делать, что делать?
Эх, майкрочип.. Я тебя так любил..

Да, подача 0 и 5Вольт на вход читается через PICKit3 - PORTB меняется, записать в LATB
тоже могу..

... "И снова предо мной стена.. И я ее пройти должна.." (с) Долина

Ужас, ужас, ужас.. Как жить дальше, дорогая редакция?
Redguy
В том же регистре INTCON бит RBIE в 1 надо еще перевсти. Если не поможет, еще подумаем. PIC надежные, проверено годами! У 16 и 18 серии ни разу с отказами не встречался, и в космос запускали - не подводили.
A. Fig Lee
Цитата(Redguy @ Nov 20 2013, 12:33) *
В том же регистре INTCON бит RBIE в 1 надо еще перевсти. Если не поможет, еще подумаем. PIC надежные, проверено годами! У 16 и 18 серии ни разу с отказами не встречался, и в космос запускали - не подводили.

RBIE разве не для interrupt-on-change? Вроде и без него должно срабатывать.
Но попробую, спасибо. Пока связался с Атмегой - нет времени разбиратся, в будующем. Надо результат на гора выдавать,
а то кушать хочется.
Redguy
Да, согласен. RBIE только на прерывания IOC на портах RB4-7 влияет, я просто отвлекся от основной мысли вот на это
Цитата(A. Fig Lee @ Nov 20 2013, 20:10) *
Пробовал прерывания "interrupt-on-change" RB4-RB7, пробовал
RB1 external interrupt, не срабатывает.

А по INT0-2 должно по идее всего хватать. Единственная мысль еще промелькнула, что там может как-то завязано на IPEN и PEIE. По умолчанию IPEN=0, PEIE тоже перевести в 1, поскольку прерывание PORTB тоже прерывание от периферии. И второй вариант попробовать IPEN=1, INT0 при этом будет иметь высокий уровень прерывания, тогда надо GIEH=1 и отладчик в прерывание должен вывалиться в 0х0008. Вроде так. Давно работал с PIC18F45K22, тоже не сразу все получилось, немного поразобраться пришлось.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.