Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Picbasic.ru » Скорая помощь начинающим » Помощь в вопросах программирования » Прерывания с порта RB0- вопрос...
Прерывания с порта RB0- вопрос...
sabshyk Дата: Чт, 09.08.2012, 17:38  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 09.08.2012

Статус: Offline

Если я в ПИК контроллере порты RB1-RB7 использую для вывода на светодиоды, а по RB0 жду прерывания, то не получится ли так что я закину в PORTB b'11111111' или чтото типа того... и это помешает отслеживанию прерывания либо я его сам введу в прерывание после вывода в порт В. По программе мне неудобно выводить в порт В побитно, хочется байтом выводить- как быть подскажите я новичок...
Спасибо заранее!
ЯНДЕКС Дата: 09.08.2012
Broka Дата: Чт, 09.08.2012, 18:12  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Настроишь правильно порты и всё будет работать. RB1 - RB7 на выход, RB0 на вход.( TRISB = %00000001). Порт RB0 настраиваешь на прерывания
Symbol GIE = INTCON.7 ' Бит глобального разрешения прерываний
Symbol INTF = INTCON.1 ' Флаг внешнего прерывания по PORTB.0(INT)
Symbol INTE = INTCON.4 ' Бит разрешения прерывания по PORTB.0(INT)

если надо подтягивающий резистор.., настраиваешь OPTION_REG.7

Делаешь в самом теле прерывания.., всё что тебе нужно cool


Наладчик КИП и А
Сообщение отредактировал Broka - Чт, 09.08.2012, 18:14
sabshyk Дата: Чт, 09.08.2012, 19:23  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 09.08.2012

Статус: Offline

Я так понимаю когда вывожу в порт В на светодиоды прерывание из порта BA0 запретить, потом когда вывел-опять разрешить, да?
А еще.... если я запишу в портВ b'11111111' то что будет с портом ВА0 который на прерывание настроен? В него тоже запись произойдет?

Сообщение отредактировал sabshyk - Чт, 09.08.2012, 19:30
Broka Дата: Чт, 09.08.2012, 20:48  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Quote (sabshyk)
А еще.... если я запишу в портВ b'11111111' то что будет с портом ВА0 который на прерывание настроен? В него тоже запись произойдет?


Нет... не произойдёт, потому как PORTB.0 настроен у тебя как цифровой вход в конфигурации (TRISB = %00000001)

Quote (sabshyk)
Я так понимаю когда вывожу в порт В на светодиоды прерывание из порта BA0 запретить, потом когда вывел-опять разрешить, да?


А вообще где ты собираешься обрабатывать вот эти выхода - Portb.1....Portb.7 ? Если всё это будет в самой подпрограмме прерывания, тогда в конце подпрограммы надо поставить флаг INTF = 0 и команду Resume. Потому как
если этого не сделать, обработка прерывания может затянуться на долгое время..... biggrin
Во общем желательно Вам немного почитать про прерывания вот в этой книжечке, там всё хорошо описано...
http://www.picbasic.ru/load....1-0-217


Наладчик КИП и А
Сообщение отредактировал Broka - Чт, 09.08.2012, 20:50
Форум Picbasic.ru » Скорая помощь начинающим » Помощь в вопросах программирования » Прерывания с порта RB0- вопрос...
Страница 1 из 11
Поиск: