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

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

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

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

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

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

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

 
Опции темы
Непрочитано 09.10.2010, 14:01  
milssky
Прохожий
 
Регистрация: 23.09.2010
Сообщений: 8
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
milssky на пути к лучшему
По умолчанию Прерывания PIC

Пытаюсь разобраться с прерывания. Выбрал 16F84A и пытаюсь моделировать в протеусе. Поставил задачу: при нажатии на кнопочку светодиод загорается и тухнет через небольшое время (около 0.5 секунды). Использую RB0/INT как источник внешнего прерывания. На RA0 висит светодиод. Код
Код:
;=================================================  ========================
; Конфигурация
;=================================================  ========================
	LIST P=16F84A			; устанавливаем тип МК
	#include p16F84A.inc	; подключаем шапку
	__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC	; конфигурация МК
;=================================================  ========================
; Описание регистров общего назначения
;=================================================  ========================
W_backup 		EQU		0x20		; копия аккумулятора
S_backup		EQU		0x21		; копия регистра статус
Dig1			EQU 	0x22		; младший разряд индикатора
Dig2			EQU 	0x23		; 2 разряд индикатора
Dig3			EQU 	0x24		; 3 разряд индикатора
Dig4			EQU 	0x25		; старший разряд индикатора
Rank			EQU		0x26		; номер разряда
Delay			EQU		.255		; задержка
Counter			EQU		0x28		; счеьтчик 

;=================================================  ========================
; Программа
;=================================================  ========================
			ORG			0x00
			GOTO		Main
;=================================================  ========================
; Подпрограммы и прерывания
;=================================================  ========================
			ORG			0x04
			MOVWF W_backup			; сохранение текущего значения аккумулятора
			MOVF STATUS,w			; помещаем регистр STATUS в аккумулятор
			MOVFW S_backup			; схраняем значение регистра STATUS
			MOVLW Delay				
			MOVWF Counter
			BSF PORTA,0				; высокий уровень на 0 ноге порта а
wwww		DECFSZ Counter
			GOTO wwww
			MOVF S_backup,w			; возвращаем значения регистра STATUS
			MOVWF STATUS
			SWAPF W_backup,f
			SWAPF W_backup,w
			BCF INTCON,INTE			; запрещаем прерывание на RB0
			RETFIE					; уход из прерывания
;=================================================  ==========================
; Главный цикл
;=================================================  ==========================
Main 		BSF STATUS,5			; идем в 1 банк
			BSF INTCON,7			; разрешаем прерывания
			BSF	INTCON,4			; разрешаем прерывания по INT
			MOVLW .1
			MOVWF TRISB				; порт В на вход
			BCF TRISA,0				; 0 вывод порта А на выход
			BSF OPTION_REG,6		; Прерывание на RB0 по переднему фронту
			BSF INTCON,4			; Разрешаем внешнее INT прерывание
			BCF STATUS,5			; идем в 0 банк
			CLRF PORTA				; 0 на всех входах порта А
			NOP						; Ждем прерывание по кнопочке
			GOTO Main
			end
Не работает зараза =( Направьте на путь истинный =)
Реклама:
milssky вне форума  
Сказали "Спасибо" milssky
warel (27.06.2019)
Непрочитано 09.10.2010, 15:22  
аtаs_stas
Заблокирован
 
Регистрация: 23.08.2010
Сообщений: 541
Сказал спасибо: 20
Сказали Спасибо 93 раз(а) в 78 сообщении(ях)
аtаs_stas на пути к лучшему
По умолчанию Re: Прерывания PIC

Код:
			NOP
			GOTO Main
			end
А по идее должно быть так

Код:
Loop:
			NOP
			GOTO Loop
			end
И ещё... возьмите за правило... сначала все настройки портов, периферии и прерываний, а потом уже разрешение прерываний... в самую последнюю очередь... а первой командой в Main - запрет всех прерываний...

Последний раз редактировалось аtаs_stas; 09.10.2010 в 15:30.
аtаs_stas вне форума  
Сказали "Спасибо" аtаs_stas
warel (27.06.2019)
Непрочитано 09.10.2010, 16:34  
milssky
Прохожий
 
Регистрация: 23.09.2010
Сообщений: 8
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
milssky на пути к лучшему
По умолчанию Re: Прерывания PIC

Все равно не работает =(

Код:
;=================================================  ========================
; Программа
;=================================================  ========================
            ORG            0x00
            GOTO        Main
;=================================================  ========================
; Подпрограммы и прерывания
;=================================================  ========================
            ORG            0x04
            MOVWF W_backup            ; сохранение текущего значения аккумулятора
            MOVF STATUS,w            ; помещаем регистр STATUS в аккумулятор
            MOVFW S_backup            ; схраняем значение регистра STATUS
            MOVLW Delay                
            MOVWF Counter
            BSF PORTA,0                ; высокий уровень на 0 ноге порта а
wwww        DECFSZ Counter
            GOTO wwww
            MOVF S_backup,w            ; возвращаем значения регистра STATUS
            MOVWF STATUS
            SWAPF W_backup,f
            SWAPF W_backup,w
            BCF INTCON,INTE            ; запрещаем прерывание на RB0
            RETFIE                    ; уход из прерывания
;=================================================  ==========================
; Главный цикл
;=================================================  ==========================
Main         BCF INTCON,7            ; запрещаем все прерывания
            BSF STATUS,5            ; идем в 1 банк
            MOVLW .1
            MOVWF TRISB                ; порт В на вход
            MOVLW .0
            MOVWF TRISA                ; выводы порта А на выход
            BCF STATUS,5            ; идем в 0 банк
            CLRF PORTA                ; 0 на всех входах порта А
            CLRF PORTB                ; ---------------------- B
            BSF INTCON,7            ; разрешаем прерывания
            BSF    INTCON,4            ; разрешаем прерывания по INT
            BSF OPTION_REG,6        ; Прерывание на RB0 по переднему фронту
Loop        NOP                        ; Ждем прерывание по кнопочке
            GOTO Loop
            end
Хотя по идее должно. Может я где-то туплю?
milssky вне форума  
Сказали "Спасибо" milssky
warel (27.06.2019)
Непрочитано 09.10.2010, 16:48  
аtаs_stas
Заблокирован
 
Регистрация: 23.08.2010
Сообщений: 541
Сказал спасибо: 20
Сказали Спасибо 93 раз(а) в 78 сообщении(ях)
аtаs_stas на пути к лучшему
По умолчанию Re: Прерывания PIC

RB0 подтяните к земле через сопротивление 10кОм, а кнопку к + питания через 270 Ом...
аtаs_stas вне форума  
Эти 2 пользователя(ей) сказали Спасибо аtаs_stas за это сообщение:
milssky (09.10.2010), warel (27.06.2019)
Непрочитано 09.10.2010, 17:02  
milssky
Прохожий
 
Регистрация: 23.09.2010
Сообщений: 8
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
milssky на пути к лучшему
По умолчанию Re: Прерывания PIC


Заработало. Спасибо огромное. Подтяжки нужны чтобы точно определить начальный уровень на ножке?
milssky вне форума  
Сказали "Спасибо" milssky
warel (27.06.2019)
Непрочитано 09.10.2010, 18:23  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,127
Сказал спасибо: 960
Сказали Спасибо 2,564 раз(а) в 1,624 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Прерывания PIC

А не проще подтяжку вывода к VDD , а кнопку на вывод и на землю напрямую ?!
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
warel (27.06.2019)
Непрочитано 09.10.2010, 18:43  
milssky
Прохожий
 
Регистрация: 23.09.2010
Сообщений: 8
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
milssky на пути к лучшему
По умолчанию Re: Прерывания PIC

да может и проще Объясните на кой вообще подтяжки?)
milssky вне форума  
Сказали "Спасибо" milssky
warel (27.06.2019)
Непрочитано 09.10.2010, 18:46  
аtаs_stas
Заблокирован
 
Регистрация: 23.08.2010
Сообщений: 541
Сказал спасибо: 20
Сказали Спасибо 93 раз(а) в 78 сообщении(ях)
аtаs_stas на пути к лучшему
По умолчанию Re: Прерывания PIC

Тоже хотел дать такой совет... а вдруг у него там не кнопка... а кнопкой в Протэзе эмулирует какой-то сигнал...
"на землю напрямую"... он сейчас в Протэзе, а через пять минут с железом... неправильная настройка на выход с единицей и... кнопкой на землю... "PIC гавно, пошёл покупать AVR..." ....
Уж лучше пусть сопрот 270 Ом поставит...
аtаs_stas вне форума  
Сказали "Спасибо" аtаs_stas
warel (27.06.2019)
Непрочитано 09.10.2010, 18:48  
аtаs_stas
Заблокирован
 
Регистрация: 23.08.2010
Сообщений: 541
Сказал спасибо: 20
Сказали Спасибо 93 раз(а) в 78 сообщении(ях)
аtаs_stas на пути к лучшему
По умолчанию Re: Прерывания PIC

Сообщение от milssky Посмотреть сообщение
да может и проще Объясните на кой вообще подтяжки?)
Чтобы избежать неопределённости состояния пина настроенного на ввод из-за его высокого входного сопротивления... чтобы "шум космоса" не ловил...
аtаs_stas вне форума  
Сказали "Спасибо" аtаs_stas
warel (27.06.2019)
Непрочитано 09.10.2010, 19:14  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,127
Сказал спасибо: 960
Сказали Спасибо 2,564 раз(а) в 1,624 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Прерывания PIC

аtаs_stas, Понял , предохраняешься значит.
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
warel (27.06.2019)
 

Закладки

Метки
pic, нуб, прерывания
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с PIC 16F873 и прерыванием по RB0 BorisVV Микроконтроллеры, АЦП, память и т.д 9 02.10.2010 23:58
Вопросы MikroC + PIC Vladimir-SV Микроконтроллеры, АЦП, память и т.д 9 30.07.2010 13:53
Прерывания в прерываниях 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, время: 10:55.


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