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

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

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

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

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

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


 
Опции темы
Непрочитано 14.04.2012, 15:13  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

Вот во вложении проект в протеусе:
Как видишь, все прекрасно работает.
Два синусоидальных сигнала подаются на входы RA0 и RA1 контроллера. Они являются входами двух аналоговых компараторов. Вторым входом компараторов является внутренний источник опорного напряжения, управляемый регистром VRCON. Как только напряжение на любом из входов RA0 или RA1 превысит порог 3,12 В, будет вызвано прерывание.
Определяется источник прерывания - модули аналоговых компараторов, определяется на каком конкретно модуле компараторов произошло превышение и формируется выходной сигнал на порт Б

Если всенепременно желаешь использовать этот самый контроллер и цифровые входы, тогда обязательно нужен внешний формирователь фротнов с гистерезисом срабатывания. Регилия это не запрещает. Контроллер то универсальный, а не специализированный, к тому же, довольно старый и простой.

Только прошу заметить, это ни в коем случае не глюк протеуса.
Вложения:
Тип файла: zip TESTCOMP.zip (31.9 Кб, 47 просмотров)
Реклама:

Последний раз редактировалось Bumbarra; 14.04.2012 в 15:28.
Bumbarra вне форума  
Непрочитано 14.04.2012, 17:24  
Dok_Alex
Частый гость
 
Регистрация: 05.10.2006
Адрес: г. Чирчик
Сообщений: 27
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dok_Alex на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

Цитата:
Регилия это не запрещает.
Bumbarra, я вообще атеист. Спасибо конечно за описание работы модуля компараторов, но с этим вопросов нет никаких абсолютно.
Цитата:
Контроллер то универсальный
Дык они все универсальные, универсальность применения - это и есть их основная задача, акромя некоторых специфически заточенных серий, типа моторных или радиотехнических.
Сейчас решил таки протестировать в железе по полусинусоиде, подаваемой на цифровые входы, с разными значениями частот (от самых низов), чтоб был конкретный критерий по времени, и посмотреть, будет ли наблюдаться подобный сбой в реальном железе.
Dok_Alex вне форума  
Непрочитано 15.04.2012, 10:52  
Dok_Alex
Частый гость
 
Регистрация: 05.10.2006
Адрес: г. Чирчик
Сообщений: 27
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dok_Alex на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

Провёл серию опытов по выявлению возможности сбоя при прерываниях по изменению уровня сигнала, подобного, что был при симуляции. Подавал полусинусоиду начиная от 1гц, пробовал наблюдать переключения при медленном заряде конденсатора и т.п.
В резултате не было выявлено ни единого паразитного ухода в прерывание, подобного при симуляции в Proteus. Так что, всё-таки можно смело использовать прерывания по аналоговым сигналам на цифровых входах TTL, но с умом! На практике всё работает без проблем!
Конечно, следует понимать при этом, что есть вероятность сбоя при попадании "шума" в пороговую зону, если уровень шума будет больше ширины этой пороговой зоны.
Т.е. использовать нужно с осторожностью и пониманием! Соответственно, чем круче фронты прерывающего сигнала, тем теоретически меньше вероятность сбоя. При крутизне фронтов от единиц до десятков микросекунд, такая вероятность стремится к нулю, т.к. на выход из прерывания требуется примерно такое же время, с такими фронтами, можно даже не переживать за сбой. Также на МК с высокой тактовой частотой, теоретически вероятность сбоя выше при тех же прочих условиях.
Dok_Alex вне форума  
Непрочитано 15.04.2012, 10:59  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

Сообщение от Dok_Alex Посмотреть сообщение
Подобные "глюки" скорее не мешают, а помогают тем, что приходится делать подобный "разбор полётов". За это только огромное спасибо разработчикам из ёркшира. Если бы не заметил сбоя при симуляции, то не обратил бы внимания, и как следствие, в железе была бы как минимум мина, замедленного действия.
Глупости говорите . Подобные "глюки" появляются от незнания работы железа .
И изучать его только по симулятору глупость вдвойне .
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 15.04.2012, 12:56  
Dok_Alex
Частый гость
 
Регистрация: 05.10.2006
Адрес: г. Чирчик
Сообщений: 27
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dok_Alex на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

Цитата:
Глупости говорите . Подобные "глюки" появляются от незнания работы железа .
И изучать его только по симулятору глупость вдвойне .
Не согласен, я не говорил, что изучать нужно только по симулятору. Я сказал, что в симуляторе можно увидеть то, чего не замечаешь в железе. И для чего тогда симулятор, чтоб не видеть в нём "глюков", пусть даже они и по не знанию. Вот увидел и узнал, это и есть процесс обучения. Разве не так? Существуют ли программисты, которые знают всё и сразу?
В железе я никогда подобного не видел, всё всегда работало без проблем, увидел только в симуляторе, поэтому и написал.

Продолжение темы.
Не всё так просто, оказывается.
Просьба обязательно посмотреть представленный демопроект!!! Всем будет очень интерестно.
Тут уже зона неустойчивого состояния не причём.
Прерывания происходят из стабильного уровня нуля и единицы. Попробуйте для дополнительного интереса подёргать переключатель.
Вопрос: что вызывает прерывание при нулевом входном уровне??????????????????? И всё-таки глюк, похоже... Или я чего-то не доглядел опять? Уважаемые коллеги, что теперь скажете???
Вложения:
Тип файла: rar gluk_interrupt_dig.rar (17.6 Кб, 49 просмотров)

Последний раз редактировалось Dok_Alex; 15.04.2012 в 13:21.
Dok_Alex вне форума  
Непрочитано 15.04.2012, 17:10  
d2812
Прохожий
 
Регистрация: 22.08.2009
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
d2812 на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

v7.8 SP2.PIC16F627A,628A,отладка,отображение: Регистр PORTB,выводы на Вход --- при изменении сигнала во время Отладки,не отображаються изменения сигналов в Регистре,при этом :
tm_flag
btfsc PORTB,0
btfss PORTB,0
goto tm_flag
movwf taimer
работает правильно.
Как исправить Отладчик ?
С кодом проблемм нет,"косяк" в Отладчике ------ не отображаються изменения сигналов в Регистре PORTB,пример:изменяю на входе RB0 с "0" на "1" ,код Работает,а в Регистре как был "0" так и остаеться.
В MPLAB все ОК.
p.s.v.P7.9sp1,P710sp0 --- "глюк" остался,изменения Отображаються только после Сброса.

Последний раз редактировалось d2812; 28.04.2012 в 11:20. Причина: дополнения к вопросу.
d2812 вне форума  
Непрочитано 15.04.2012, 17:44  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

Блин, нажуевертил в коде, стака букав, стока букав... А че, проще нельзя написать? Без формирования чего-то на выходе, без кучи звездочек и мега-коментариев. Вметсо пробелов - есть кнопка Tab на клавиатуре - она выставит аккуратную табуляцию, то есть, сдвиг вправо текста.

Возьми и пошагово просимулируй, глядя за исполнением кода в окошке PIC CPU Source Code. Поставь Breakpoint напротив адреса программ 0х04. и запусти симуляцию. Как только произойдет переход по вектору прерываний, симуляция остановится. И ты увидишь, как пройдет проверка флагов прерываний и какие действия будут выполняться.

В тексте программы, когда после перехода по вектору прерываний, ты должен проверить установку флага прерывания от ожидаемого источника.
И ты должен учитывать то, что прерывание может быть вызвано не только по событию interrupt-on-change, но и от любого другого источника, поэтому правилом хорошего тона является так же процедура обработки ошибочного прерывания.

То есть, проверяем, установлен ли флаг INTCON, RAIF. Если установлен, тогда переходим в другую подпрограмму и выполняем какие-то действия. Если этот флаг не установлен, тогда переходим к обработке ошибочного прерывания. В простейшем случае - это просто возврат из обработчика.
Код:
Interrupt:
	btfsc INTCON, RAIF
	goto IntOnChange
End_Interrupt:	
	retfie
; ..............................
IntOnChange:
    ..тут текст того, чего выполнить надо..
	bcf INTCON, RAIF
	goto End_Interrupt
А не так, как ты в тексте написал. У тебя все равно выполняются действия с выходным портом.

Код:
btfss flags,RA2
goto on_RA2 
goto off_RA2
"если второй бит из какого-то регистра "flags" установлен, то перейти на off_RA2, а если сброшен, то перейти на on_RA2, а дальше проделать ваапче накуюто херню"

Что такое "flags,RA2"? Ему присвоен адрес 0х30? А это что там? По этому адресу располагается регистр общего назначения и никакого отношения он не имеет к прерываниям.
Interrupr-on-change не относится к перифирийным модулям. А ты в тексте разрешаешь прерывания по ним - INTCON,PEIE. Ну вот и получается, что любой другой модуль может установить флаг и перейти по вектору. А там, где ты проверяешь флаги - обязательно выполнится действие по включению порта.
Хотя, конечно, после сброса контроллера все биты разрешения и флаги прерываний сброшены.


К тому же, уже не раз говорилось, что симуляция - это только симуляция. Если при симуляции устройство работает, это не значит, что оно будет работать в "железе". И наоборот, если не работает при симуляции - еще не значит, что в "железе" не будет работать.

Цитата:
Прерывания происходят из стабильного уровня нуля и единицы. Попробуйте для дополнительного интереса подёргать переключатель.
Подергать переключатель во время запущенной симуляции? А попробуй подергать переключатель в "железе"
Bumbarra вне форума  
Непрочитано 15.04.2012, 17:53  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

Сообщение от d2812 Посмотреть сообщение
Как исправить ?
Проект в студию ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 15.04.2012, 18:22  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

Dok_Alex
А вообще...
3.2.2 INTERRUPT-ON-CHANGE
Each of the PORTA pins is individually configurable as
an interrupt-on-change pin. Control bits IOCAx enable
or disable the interrupt function for each pin. Refer to
Register 3-4. The interrupt-on-change is disabled on a
Power-on Reset.
For enabled interrupt-on-change pins, the values are
compared with the old value latched on the last read of
PORTA. The ‘mismatch’ outputs of the last read are
OR'd together to set, the PORTA Change Interrupt flag
bit (RAIF) in the INTCON register.
This interrupt can wake the device from SLEEP. The
user, in the Interrupt Service Routine, can clear the
interrupt in the following manner:
a) Any read or write of PORTA. This will end the
mismatch condition.
b) Clear the flag bit RAIF.
A mismatch condition will continue to set flag bit RAIF.
Reading PORTA will end the mismatch condition and
allow flag bit RAIF to be cleared
Bumbarra вне форума  
Непрочитано 15.04.2012, 18:28  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Proteus - глюки, проблемы с установкой

Сообщение от Dok_Alex Посмотреть сообщение
Разве не так? Существуют ли программисты, которые знают всё и сразу?
Естественно нет , но и не все сразу бросаются за писанину с криками "глюк программы"...
__________________
Осторожно , злой кот
dosikus вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глюки Proteus 6.9 Prime Коллекция глюков 2 07.09.2009 19:54
Вопрос по PROTEUS (проблемы с таймером) maxNTF Микроконтроллеры, АЦП, память и т.д 12 29.06.2007 09:36
Зависание и глюки chipic128 Микроконтроллеры, АЦП, память и т.д 16 24.03.2005 10:52
глюки у VisualDSP++3.5 Geremy Коллекция глюков 2 10.02.2005 17:21
Проблемы с Proteus 6.2 sp5 RomulKv Proteus, KiCAD и другие ECAD 0 29.12.2004 15:58


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


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