Выход из спячки Pic16f628

Discussion in 'Электроника и Фрикинг' started by MegaDeth, 10 Oct 2007.

  1. MegaDeth

    MegaDeth Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    71
    Reputations:
    13
    Выход из спячки Pic12f629

    контроллер впадает в спячку, но выходить из нее по прерыванию по изменению уровня на линиях ввода\вывода не желает. если включить но заранее подать выс уровень на линию - тогда горит светодиод (бит 4 GPIO=1 )
    Code:
    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
    
    кто хотябы вообще имел дело с этим намекните что нетак понимяю что в этой писаине разбиратся никто небудет, даже отладчик дальше слипа не работает :)
     
    #1 MegaDeth, 10 Oct 2007
    Last edited: 10 Oct 2007
  2. n0ne

    n0ne Elder - Старейшина

    Joined:
    1 Jan 2007
    Messages:
    542
    Likes Received:
    284
    Reputations:
    -56
    Я не мастер в этом деле, но может надо указать сколько по времени sleep должен длица?)
     
  3. MegaDeth

    MegaDeth Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    71
    Reputations:
    13
    n0ne, нет, это спячка дло тех пор пока не изменятся уровни на входах (прерывание простоя если мона выразицо)
    простой для экономии энергии (в пульте ДУ система)
    смотрел другие исходники - ну все же также и работает! инициализацию брал из даташита по контроллеру.
     
  4. EmitRemus

    EmitRemus Elder - Старейшина

    Joined:
    22 Apr 2007
    Messages:
    105
    Likes Received:
    55
    Reputations:
    23
    А можно по подробней о контроллере? Где именно используешь его? И чем его программишь? Поннипрогом?...
     
  5. MegaDeth

    MegaDeth Elder - Старейшина

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

    MegaDeth Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    71
    Reputations:
    13
    проблема решена, тему в треш, спасибо тем кто пытался помочь!