Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Usart kesmesi sorun var??

Başlatan My75, 08 Ekim 2009, 18:32:55

My75

Merhabalar,kesme oluştuğu anda hserin'de çakılıkalıyor,ayarlarda bir sorun varmıdır arkadaşlar??


@ DEVICE pic16f877A
@ DEVICE pic16f877A , wdt_on
@ DEVICE pic16f877A , pwrt_on
@ DEVICE pic16f877A , protect_off
@ DEVICE pic16f877A , bod_off
@ DEVICE pic16f877A , xt_osc
DEFINE  OSC 4
DEFINE  HSER_RCSTA 90h  
DEFINE  HSER_TXSTA 24h    
DEFINE  HSER_BAUD  1200  
DEFINE  HSER_SPBRG 207  
DEFINE  HSER_CLROERR 1    
SYMBOL  GIE  =INTCON.7  
SYMBOL  PEIE =INTCON.6  
SYMBOL  RCIE =PIE1.5    
SYMBOL  RCIF =PIR1.5
ON INTERRUPT GOTO KESME
OPTION_REG.7=0
ADCON1=7
RCIE=1
PEIE=1
GIE=1




DISABLE
KESME:
GIE=0
HSERIN [A,B,C]

If A=50 And B=49 And C=48 Then ARACTIPI
If A=50 And B=50 And C=49 Then ONAY
If A=50 And B=50 And C=48 Then ONAY
If A=49 And B=51 And C=48 Then HSerOut ["230",13]:GoTo CIKIS '130 ONAY
If A=49 And B=54 And C=48 Then HSerOut ["260",13]:GoTo BASLA '160 RESET
TEMP=RCREG
GIE=1
Resume
enable

END
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

ete

Öncelikle hemen belirteyim. Kesme içine girilince oradan Goto - Gosub ile çıkılmaz. Bu nedenle öncelikle bu if satırlarını ana program içinde yerleştir.
Nasılsa kesmeden çıkan program geldiği yere dönecektir.
Bunu yapamıyor isen herbir şart için bir ayrı bit değişkeni kullan ve onu set et. SOnra ana program içinde onları set olmuşmu diye test et ve ona göre ne yapacaksan yap.
Buna rağmen "heserin de takılma devam ediyor ise, bir timeout değeri ve etiketi ilave et. Örnek aşağıdadır.
Herhangi bir bilgi ulaşmamış ise en fazla verilen değer kadar milisaniye bekler. Gerekirse 3 rakamını 5-10 şeklinde artırabilirsin.

Ete

DISABLE
KESME:
GIE=0
HSERIN 3,ATLA, [A,B,C]

If A=50 And B=49 And C=48 Then ARACTIPI
If A=50 And B=50 And C=49 Then ONAY
If A=50 And B=50 And C=48 Then ONAY
If A=49 And B=51 And C=48 Then HSerOut ["230",13]:GoTo CIKIS '130 ONAY
If A=49 And B=54 And C=48 Then HSerOut ["260",13]:GoTo BASLA '160 
ATLA:
RESET
TEMP=RCREG
GIE=1
Resume
enable

END
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

My75

Hocam bu kadar olur,sonuçları değişkene kaydettikten sonra kesmeden çıkınca değişkenin değerine göre işlem yaptırdım sorun çözüldü.Ve şimdi baktım sizde aynı yöntemi söylemişsiniz.Zaten kafama takılmıştı kaldığı yere dönecekse nasıl etikete yönlendiriyorum diye...Çok teşekkürler hocam..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...