RB0 kesmesi ile SLEEP komutundan çıkamıyorum...

Başlatan şavkı, 15 Mart 2015, 13:34:13

şavkı

Merhaba arkadaşlar, kısa bir süre önce ete hocanın ders notlarıyla çalışmaya başladım. 24 saatte bir 10 saniye açılan bir sistem tasarlamak istiyorum. Çok ayrıntılı birşey değil günlük bir kaç saniyelik sapma önemli değil. Sleep komutu ile sistemi uyutmak istiyorum. Fakat portb.0 'a bağlı bir butona bastığımda sistem açılsın istiyorum. Sorun şu ki program sleep komutuna girdikten sonra portb.0 daki butona bassam bile uyumaya devam ediyor. Biraz araştırma yaptım ve ete hocanın daha önce bu tarz sorulara verdiği cevaplara baktım @sleep ve sleep süre şeklinde ikisinide ayrı ayrı denedim fakat simülasyonda istediğim şekilde çalışmadı. Bu konuda yardımlarınızı bekliyorum...

@ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
PORTA=0
PORTB=0
TRISA=0
TRISB=%00000001
ON INTERRUPT GOTO KESME
INTCON=%10010000
OPTION_REG=%00000000
CMCON=7
SYMBOL MOTOR=PORTA.0
BASLA:
    PAUSE 200
    MOTOR=1
    PAUSE 10000
    MOTOR=0
    Sleep 36000
    GOTO BASLA                                                                               
    DISABLE
KESME:
    PAUSE 200
    INTCON.1=0
    RESUME
    ENABLE
END

ete

İki türlü sleep komutundan süreye bağlı olanı kullanmışsın. Bu komut ile çalışırsan süre dolmadan uykudan çıkamazsın. Assembler komutu olan @ Sleep komutunu kullanırsan (wdt da on konumunda ise) PORTB.0 kesmesi ile uykudan çıkabilirsin.

Ete


şavkı

Hocam merhaba devreyi gerçekte kurup çalıştırmadım. İsiste simüle ettim fakat dediğiniz gibi @ sleep komutunu kullandığımda program hiç uyku moduna geçmiyor. @ sleep komutundan sonra süre girmek istersem ne yapmalıyım?

ete

hiç bir şey yapamazsın. Ya süreli uyandırma yada b.0 tuşu ile uyandırmayı tercih edeceksin.
Ete

şavkı

Hocam ilginiz için teşekkür ederim. Bir kaç gündür bu sorunun cevabını arıyordum sayenizde öğrenmiş oldum...

Powered by EzPortal