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

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

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

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

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

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


 
Опции темы
Непрочитано 15.08.2013, 07:37  
Архип
Временная регистрация
 
Регистрация: 16.08.2010
Сообщений: 58
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Архип на пути к лучшему
По умолчанию Pic12F675 - как выйти из режима SLEEP

Не могу вывести контроллер 12F675 из режима слип по изменению состояния на входе GP3.


; настройка слова конфигурации микроконтроллера
;
__config 011C4h

;..... Инициализация TRISIO направление выводов (GP3 - аппар. только вход) .......
;
MOVLW 0bh ; Значение для выбора направления 0000 1011 b
MOVWF TRISIO ; Установить GP‹3,1:0› - вход, GP‹5:4,2› выходы

BCF GPIO,LEDB ; Потушить синий светодиод
BSF GPIO,LEDR ; Зажечь красный светодиод

BCF INTCON,PEIE ; разрешение обработки прерываний переферии ??????????????????????
BSF INTCON,GPIE ; разрешить прерывания при изменении на GPIO

CLRF IOCB
BSF IOCB,IOCB3 ; разрешаем прерывания по изменению на GP3
BCF INTCON,GPIF ; сброс флага прерывания для GPIO
BCF INTCON,GIE ; разрешение прерываний

SLEEP
NOP
CALL PAUSE
BCF GPIO,LEDR ; Потушить красный светодиод
CALL PAUSE
CALL PAUSE
CALL PAUSE
BSF GPIO,LEDB ; Зажечь синий светодиод

Где несоответствие?
Реклама:
Архип вне форума  
Непрочитано 15.08.2013, 07:53  
firew0rker
Заблокирован
 
Регистрация: 22.04.2010
Сообщений: 349
Сказал спасибо: 41
Сказали Спасибо 105 раз(а) в 94 сообщении(ях)
firew0rker на пути к лучшему
По умолчанию Re: Pic12F675 - как выйти из режима SLEEP

Вместо разрешения прерываний запрещаете их:
BCF INTCON,PEIE
BCF INTCON,GIE
firew0rker вне форума  
Непрочитано 15.08.2013, 08:05  
Архип
Временная регистрация
 
Регистрация: 16.08.2010
Сообщений: 58
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Архип на пути к лучшему
По умолчанию Re: Pic12F675 - как выйти из режима SLEEP

Сообщение от firew0rker Посмотреть сообщение
Вместо разрешения прерываний запрещаете их:
BCF INTCON,PEIE
BCF INTCON,GIE

Устал разрешать... Не хочет выходить также и с разрешением периферии. Общее разрешение прерываний GIE, согласно документации, должно работать, как с запретом, так и с разрешением. Разница - в одном случае выходит на прерывание адр. 04, в другом продолжает программу после инструкции NOP.
Архип вне форума  
Непрочитано 15.08.2013, 08:17  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,594
Сказал спасибо: 395
Сказали Спасибо 740 раз(а) в 419 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Pic12F675 - как выйти из режима SLEEP

Где у Вас переключение банков?
AJScorp вне форума  
Непрочитано 15.08.2013, 08:19  
Архип
Временная регистрация
 
Регистрация: 16.08.2010
Сообщений: 58
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Архип на пути к лучшему
По умолчанию Re: Pic12F675 - как выйти из режима SLEEP

Вот такая схема
Архип вне форума  
Непрочитано 15.08.2013, 08:22  
Архип
Временная регистрация
 
Регистрация: 16.08.2010
Сообщений: 58
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Архип на пути к лучшему
По умолчанию Re: Pic12F675 - как выйти из режима SLEEP

;................ Калибровка внутреннего OSC генератора .............................
;
BSF STATUS,RP0 ; ВЫБРАТЬ БАНК 1
CALL 3FFh ; Считать калибровочную константу
MOVWF OSCCAL ; Калибровать генератор
;
;............... Инициализация регистра OPTION_REG ..................................
;
BCF OPTION_REG,T0CS ; Выбор внутреннего источника тактирования TMR0
BSF OPTION_REG,PSA ; Назначить предварительный делитель перед WDT
BCF OPTION_REG,PS2 ; Значение коэф предварительного делителя (старш)
BSF OPTION_REG,PS1 ; Значение коэф предварительного делителя(1:4)
BCF OPTION_REG,PS0 ; Значение коэф предварительного делителя
;
;..... Инициализация TRISIO направление выводов (GP3 - аппар. только вход) .......
;
MOVLW 0bh ; Значение для выбора направления 0000 1011 b
MOVWF TRISIO ; Установить GP‹3,1:0› - вход, GP‹5:4,2› выходы
;
;............... Инициализация регистра ANSEL ......................
;
CLRF ANSEL ; Все выводы цифровые,источник тактовой частоты АЦП - Fosc/2
BSF ANSEL,ANS0 ; Настроить вывод GP0 - аналоговый
BSF ANSEL,ANS1 ; Настроить вывод GP1 - аналоговый
BSF ANSEL,ADCS0 ; Выбрать источник тактового сигнала АЦП - Fosc/8 (100)
;
BCF STATUS,RP0 ; ВЫБРАТЬ БАНК 0
Архип вне форума  
Непрочитано 15.08.2013, 09:22  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,594
Сказал спасибо: 395
Сказали Спасибо 740 раз(а) в 419 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Pic12F675 - как выйти из режима SLEEP

BSF STATUS, RP0 ;IOCB в банке 1
Сообщение от Архип Посмотреть сообщение
CLRF IOCB
BSF IOCB,IOCB3 ; разрешаем прерывания по изменению на GP3
BCF STATUS, RP0 ;GPIO в банке 0
AJScorp вне форума  
Непрочитано 15.08.2013, 09:42  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,891
Сказал спасибо: 930
Сказали Спасибо 4,320 раз(а) в 2,581 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Pic12F675 - как выйти из режима SLEEP

Там еще вроде порт надо прочесть после прерывания в обязательном порядке. Были такие грабли.
Easyrider83 вне форума  
Непрочитано 15.08.2013, 10:42  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,070
Сказал спасибо: 594
Сказали Спасибо 3,910 раз(а) в 1,811 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Pic12F675 - как выйти из режима SLEEP

Вроде порт надо прочесть и до перехода в режим SLEEP.
alvadep вне форума  
Непрочитано 15.08.2013, 10:53  
alvadep
Почётный гражданин KAZUS.RU
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,070
Сказал спасибо: 594
Сказали Спасибо 3,910 раз(а) в 1,811 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Pic12F675 - как выйти из режима SLEEP

Архип, использование директивы banksel наглядней чем
Цитата:
BSF STATUS,RP0 ; ВЫБРАТЬ БАНК 1
Потом и самому будет легче читать код.
alvadep вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Так, рассказик :)) Я долго ржал :)) DK Отвлекитесь, эмбеддеры! 7 31.08.2007 22:33
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49
[Решено] про блоки питания бу-га-га! zalman Отвлекитесь, эмбеддеры! 12 29.01.2007 10:46
[Решено] Всем эмбеддерам посвящается... Decan Отвлекитесь, эмбеддеры! 0 24.10.2005 14:43


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


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