Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Электроника и Фрикинг (https://forum.antichat.xyz/forumdisplay.php?f=21)
-   -   Выход из спячки Pic16f628 (https://forum.antichat.xyz/showthread.php?t=50931)

MegaDeth 10.10.2007 21:45

Выход из спячки Pic12f629
 
контроллер впадает в спячку, но выходить из нее по прерыванию по изменению уровня на линиях ввода\вывода не желает. если включить но заранее подать выс уровень на линию - тогда горит светодиод (бит 4 GPIO=1 )
Код:

list      p=12F629
#include  <p12f629.inc>
    __CONFIG  _CP_OFF & _WDT_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT

counter equ 0x0a
count1 EQU 0x0b
count2 equ 0x0c

    #define led GPIO,4
    #define KEY1 GPIO,0
    #define KEY2 GPIO,1
    #define KEY3 GPIO,3


;------calibr Gen--------
bsf STATUS,RP0;Bank 1
call 3FFh ;Get the calibr value
movwf OSCCAL ;Calibrate
clrf INTCON
init;-----------inst GPIO--------
bsf STATUS,RP0
movlw b'00000000'
movwf OPTION_REG
movlw B'00101111'
movwf TRISIO
movlw b'00001011'
movwf WPU
movlw b'00001011'
movf IOCB
bsf INTCON,3
bcf INTCON,0
bcf STATUS,RP0
movlw 0xff
movwf CMCON
clrf GPIO
;---------------------------
opr btfss KEY1
goto $+4
bcf led

sleep
nop
goto init
bsf led
goto opr


end

кто хотябы вообще имел дело с этим намекните что нетак понимяю что в этой писаине разбиратся никто небудет, даже отладчик дальше слипа не работает :)

n0ne 10.10.2007 23:05

Я не мастер в этом деле, но может надо указать сколько по времени sleep должен длица?)

MegaDeth 10.10.2007 23:44

n0ne, нет, это спячка дло тех пор пока не изменятся уровни на входах (прерывание простоя если мона выразицо)
простой для экономии энергии (в пульте ДУ система)
смотрел другие исходники - ну все же также и работает! инициализацию брал из даташита по контроллеру.

EmitRemus 12.10.2007 00:28

А можно по подробней о контроллере? Где именно используешь его? И чем его программишь? Поннипрогом?...

MegaDeth 12.10.2007 15:09

EmitRemus, http://www.microchip.ru/files/d-sheets-rus/PIC12F629_675.pdf русский даташит если кому нада вдруг) контроллер на 6 линий ввода\вывода, юзаю в пульте ДУ (почему не RfPic - надо чтобы схема вышла минимальной по цене).
задача контроллера - просыпаться когда жмут на кнопку и посылать данные на ИК передатчк (модуляция частотная). но вот просыпаться он не желает... я воообще думаю надо с нуля прошивку написать но не факт что не повторю ошибки. пробовал после sleep установить на ноге лог. 1 и повесить контроллер в безк. цикл, но уровень так и выставляется на ноге значит он не пробуждается...
програмлю ЖДМ'ом. (jdm)

MegaDeth 12.10.2007 18:51

проблема решена, тему в треш, спасибо тем кто пытался помочь!


Время: 13:08