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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 24.06.2011, 09:52  
Victor_72
Частый гость
 
Регистрация: 17.11.2009
Сообщений: 31
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Victor_72 на пути к лучшему
По умолчанию Организация грамотного прерывания на PIC16

Реализовал часы на DS3232 и PIC16F873 - связь по I2C.
Для ежесекундной индикации времени использую выход с ДС (меандр 1Гц) на INT МК для прерывания по спадающему фронту.
Но... всвязи с нахождением входного импульса на INT в нижнем уровне, после отработки прерывания, вновь ухожу в прерывание и так пол секунды...
Как победить данный вопрос программным путем? Пока дошел только до установки конденсатора, укорачивающего отрицательный импульс (но как-то некошерно получилось). Одновибратор ставить нет желания. Чую должен быть программный способ...
Подскажите куда копать?
Реклама:
Victor_72 вне форума  
Сказали "Спасибо" Victor_72
warel (28.06.2019)
Непрочитано 24.06.2011, 10:37  
Ruslan-1
Прописка
 
Регистрация: 14.04.2011
Адрес: Кишинев
Сообщений: 243
Сказал спасибо: 39
Сказали Спасибо 144 раз(а) в 71 сообщении(ях)
Ruslan-1 на пути к лучшему
По умолчанию Re: Организация грамотного прерывания на PIC16

первый вопрос вы действительно уверены что ситуация именно такова как вы ее описали? на RB0/INT приходит сигнал типа меандр с частотой 1Гц? вы это видели осциллографом?

если да, то:
Как следует и документации, INT срабатывает по переходу, а не по уровню. Это значит, что вы что-то не то в программе написали, если у вас оно не так работает. Самый простой способ найти и устранить проблему- это прогнать на симуляторе MPLAB. Симулятор позволит вам убедиться что проблема таки есть и позволит проконтролировать когда вы ее таки устранили да.
Хотя может быть и просто взгляда на исходник хватит. давайте исходник, скажу где собака порылась.


Цитата:
12.10.1 INT INTERRUPT
External interrupt on the RB0/INT pin is edge triggered,
either rising, if bit INTEDG (OPTION_REG‹6›) is set,
or falling, if the INTEDG bit is clear. When a valid edge
appears on the RB0/INT pin, flag bit INTF
(INTCON‹1›) is set. This interrupt can be disabled by
clearing enable bit INTE (INTCON‹4›). Flag bit INTF
must be cleared in software in the Interrupt Service
Routine before re-enabling this interrupt.
Ruslan-1 вне форума  
Сказали "Спасибо" Ruslan-1
warel (28.06.2019)
Непрочитано 24.06.2011, 12:25  
Victor_72
Частый гость
 
Регистрация: 17.11.2009
Сообщений: 31
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Victor_72 на пути к лучшему
По умолчанию Re: Организация грамотного прерывания на PIC16

Сообщение от Ruslan-1 Посмотреть сообщение
...Как следует и документации, INT срабатывает по переходу, а не по уровню.
Я тоже так думал, но вся засада в том, что при низком INT идет постоянное прерывание... Проверю мож флаги не сбрасываю (или сбрасываю но не вовремя).
Ок, погляжу осциллографом...
Еще поиграю с флагами INTF, INTE.
Victor_72 вне форума  
Сказали "Спасибо" Victor_72
warel (28.06.2019)
Непрочитано 24.06.2011, 12:51  
Ruslan-1
Прописка
 
Регистрация: 14.04.2011
Адрес: Кишинев
Сообщений: 243
Сказал спасибо: 39
Сказали Спасибо 144 раз(а) в 71 сообщении(ях)
Ruslan-1 на пути к лучшему
По умолчанию Re: Организация грамотного прерывания на PIC16

Сообщение от Victor_72 Посмотреть сообщение
Еще поиграю с флагами INTF, INTE.
Не нужно ничем играться. Это цифровая техника, тут все предсказуемо и документированно, нужно просто прочитать документацию. Чудес не бывает.

Что мплабовский симулятор показывает? программа действительно переходит повторно на прерывание при сохранении низкого уровня на RB0 ?

Но гадать так долго можно, просто программу приведите, тогда будет конкретика. Если там ноухау какие-то - то специальную тестовую версию сделайте и ее дайте поглядеть.
Ruslan-1 вне форума  
Сказали "Спасибо" Ruslan-1
warel (28.06.2019)
Непрочитано 24.06.2011, 13:08  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Организация грамотного прерывания на PIC16

У этого камня прерывание идет только по изменению уровня. На более современных можно выбрать спад и наростание отдельно.
Выход из ситуации - проверять в прерывании, равно ли оно единице. Если равно - выполнять дальше. Если нет, выкидывать из прерывания. Элементарно, Ватсон.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (28.06.2019)
Непрочитано 24.06.2011, 13:18  
Popeye
Почётный гражданин KAZUS.RU
 
Аватар для Popeye
 
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
Popeye на пути к лучшему
По умолчанию Re: Организация грамотного прерывания на PIC16

Сообщение от Victor_72 Посмотреть сообщение
INTF
В прерывании нужно сбрасывать. Если Вы это сделали, без кода вразумительный ответ дать затруднительно.
__________________
Мыслю, следовательно существую
Popeye вне форума  
Сказали "Спасибо" Popeye
warel (28.06.2019)
Непрочитано 24.06.2011, 15:22  
Victor_72
Частый гость
 
Регистрация: 17.11.2009
Сообщений: 31
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
Victor_72 на пути к лучшему
По умолчанию Re: Организация грамотного прерывания на PIC16

Сообщение от Popeye Посмотреть сообщение
В прерывании нужно сбрасывать. .
Сбрасываю при завершении обработки прерывания...

Исходник дома, доберусь, выложу...
Victor_72 вне форума  
Сказали "Спасибо" Victor_72
warel (28.06.2019)
Непрочитано 24.06.2011, 17:59  
Ruslan-1
Прописка
 
Регистрация: 14.04.2011
Адрес: Кишинев
Сообщений: 243
Сказал спасибо: 39
Сказали Спасибо 144 раз(а) в 71 сообщении(ях)
Ruslan-1 на пути к лучшему
По умолчанию Re: Организация грамотного прерывания на PIC16

Сообщение от Easyrider83 Посмотреть сообщение
У этого камня прерывание идет только по изменению уровня. На более современных можно выбрать спад и наростание отдельно.
Неверно. смотрите отрывок из документации, который я цитировал раньше. именно нога RB0/ INT может ловить конкретный перепад. Вы наверное перепутали с прерыванием по порту RB.
Ruslan-1 вне форума  
Сказали "Спасибо" Ruslan-1
warel (28.06.2019)
Непрочитано 25.06.2011, 07:57  
PlainUser
Прописка
 
Регистрация: 09.12.2003
Сообщений: 116
Сказал спасибо: 5
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
PlainUser на пути к лучшему
По умолчанию Re: Организация грамотного прерывания на PIC16

Сообщение от Ruslan-1 Посмотреть сообщение
Flag bit INTF
must be cleared in software
Таки это надо сделать , других вариантов нет.
PlainUser вне форума  
Сказали "Спасибо" PlainUser
warel (28.06.2019)
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывания PIC milssky Микроконтроллеры, АЦП, память и т.д 12 10.10.2010 13:31
Как изменить адрес подпрограммы обработки прерывания? Godzilla82 Микроконтроллеры, АЦП, память и т.д 21 23.08.2010 09:52
Прерывания в прерываниях ATmega8 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 35 07.07.2010 10:12
Вложенные прерывания HITECH PIC16 picavr Микроконтроллеры, АЦП, память и т.д 17 07.03.2010 17:39
Вход в прерывания для PIC микроконтроллеров dimmich Микроконтроллеры, АЦП, память и т.д 4 06.12.2009 17:17


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


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