Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 06.01.2018, 00:40  
Владимир П.
Прохожий
 
Регистрация: 06.01.2018
Сообщений: 6
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Владимир П. на пути к лучшему
По умолчанию самопроизвольные прерывания PIC16F877A

Доброго времени.

Помогите, плиз, разобраться. с прерываниями контроллера PIC16F877A.

void interrupt ISR (void)
// Обработка прерываний TMR1
{
if(PIR1bits.TMR1IF)
{
PIR1bits.TMR1IF = 0;
................
}
// Обработка прерываний TMR0
if (INTCONbits.TMR0IF) {
INTCONbits.TMR0IF = 0;
..............
}
// Обработка прерываний на RB4-RB7
if(INTCONbits.RBIF && INTCONbits.RBIE) {

INTCONbits.RBIF = 0;
...............
}
}

.
.
.

TRISB = 0B11110000;
PORTB = 0XF0; // ‹- ??!??! 0_o
OPTION_REG = 0b10000111;
PIR1bits.TMR1IF = 0;
PIE1bits.TMR1IE = 1;
INTCONbits.TMR0IF = 0;
INTCONbits.TMR0IE = 1;
INTCONbits.GIE = 1;
INTCONbits.RBIE =1;
INTCONbits.RBIF =0;
PEIE =0;



проблема заключается в том, что на железе происходит самопроизвольное срабатывание условия if(INTCONbits.RBIF && INTCONbits.RBIE). даже при пустых (без нагрузки) ногах RB0-RB7.
TMR1 и TMR0 без ошибок

Отладка в MPLAB показывает RBIF = 0
Реклама:

Последний раз редактировалось Владимир П.; 06.01.2018 в 00:43.
Владимир П. вне форума  
Непрочитано 06.01.2018, 01:43  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 590
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: самопроизвольные прерывания PIC16F877A

Сообщение от Владимир П. Посмотреть сообщение
проблема заключается в том, что на железе происходит самопроизвольное срабатывание условия
а вы условие сброса флага не выполняете.... читайте ДШ там усе написано
DmitriyVDN вне форума  
Непрочитано 06.01.2018, 05:41  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: самопроизвольные прерывания PIC16F877A

Подтяжка есть по питанию?
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 06.01.2018, 10:23  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 428
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: самопроизвольные прерывания PIC16F877A

Читаем даташит
Цитата:
Reading PORTB will end the mismatch condition and allow the bit to be cleared
Чтение PORTB завершит условие несоответствия и позволит очистить бит
Порт читать надо.
sat_art вне форума  
Непрочитано 06.01.2018, 12:19  
Владимир П.
Прохожий
 
Регистрация: 06.01.2018
Сообщений: 6
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Владимир П. на пути к лучшему
По умолчанию Re: самопроизвольные прерывания PIC16F877A

Сообщение от DmitriyVDN Посмотреть сообщение
а вы условие сброса флага не выполняете.... читайте ДШ там усе написано
Можете помочь показать, пожалуйста, мне конкретно где это , я не нашел.
Владимир П. вне форума  
Непрочитано 06.01.2018, 12:20  
Владимир П.
Прохожий
 
Регистрация: 06.01.2018
Сообщений: 6
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Владимир П. на пути к лучшему
По умолчанию Re: самопроизвольные прерывания PIC16F877A

Сообщение от sat_art Посмотреть сообщение
Читаем даташит

Порт читать надо.
Я не нашел. Можете пример привести, пожалуйста
Владимир П. вне форума  
Непрочитано 06.01.2018, 12:24  
Владимир П.
Прохожий
 
Регистрация: 06.01.2018
Сообщений: 6
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Владимир П. на пути к лучшему
По умолчанию Re: самопроизвольные прерывания PIC16F877A

Сообщение от CERGEI1982 Посмотреть сообщение
Подтяжка есть по питанию?

Так должно быть?
Миниатюры:
Нажмите на изображение для увеличения
Название: PicsArt_01-06-11.22.53.jpg
Просмотров: 0
Размер:	7.6 Кб
ID:	123684  
Владимир П. вне форума  
Непрочитано 06.01.2018, 12:35  
DmitriyVDN
Гражданин KAZUS.RU
 
Регистрация: 10.06.2010
Сообщений: 590
Сказал спасибо: 222
Сказали Спасибо 232 раз(а) в 152 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: самопроизвольные прерывания PIC16F877A

Сообщение от Владимир П. Посмотреть сообщение
Я не нашел. Можете пример привести, пожалуйста
что не нашел? тебе цитату из ДШ привели еще и перевод добавили. что не понятно в фразе "чтение порта позволит очистить флаг прерывания" ?
DmitriyVDN вне форума  
Непрочитано 06.01.2018, 13:23  
Владимир П.
Прохожий
 
Регистрация: 06.01.2018
Сообщений: 6
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Владимир П. на пути к лучшему
По умолчанию Re: самопроизвольные прерывания PIC16F877A

Сообщение от DmitriyVDN Посмотреть сообщение
что не нашел? тебе цитату из ДШ привели еще и перевод добавили. что не понятно в фразе "чтение порта позволит очистить флаг прерывания" ?
Что значит чтение порта? If RB4 == 1 ... ?
При этом начнет работать условие RBIF ?
Владимир П. вне форума  
Непрочитано 06.01.2018, 13:36  
iso9001
Прописка
 
Регистрация: 04.01.2012
Сообщений: 110
Сказал спасибо: 37
Сказали Спасибо 53 раз(а) в 34 сообщении(ях)
iso9001 на пути к лучшему
По умолчанию Re: самопроизвольные прерывания PIC16F877A

В железе, используя внутрисхемную отладку, можно столкнуться с такой проблемой, т.к. RB7 RB6 используются для ICD... Флаг устанавливается по изменению уровня (т.е. с 0 в 1 и наоборот). Сброс флага выполнять программно. Отладку программы с таким прерыванием нужно вести без внутрисхемного отладчика, релизом...
iso9001 вне форума  
Сказали "Спасибо" iso9001
Владимир П. (06.01.2018)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STM32F4 discovery не срабатывают прерывания по I2C Kopranych ARM 10 29.11.2016 20:56
AT89C5131 прием и передача данных по USB rihkov AVR 14 15.11.2012 08:16
PIC16 TMR0 и TMR2 Slava-martyn Микроконтроллеры, АЦП, память и т.д 10 06.12.2011 01:58
Прерывания PIC milssky Микроконтроллеры, АЦП, память и т.д 12 10.10.2010 13:31
Вход в прерывания для PIC микроконтроллеров dimmich Микроконтроллеры, АЦП, память и т.д 4 06.12.2009 17:17


Часовой пояс GMT +4, время: 10:28.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot