tmr kesmesi nasıl yavaşalatılır ?

Başlatan ibo1973, 18 Aralık 2008, 12:55:59

ibo1973

bu tmr kesmesi çok fazla hızlı saniyede 60 defa kesmeye girmekten pice diğer işleri yaptıramıyorum buna bi mantıkta düşünemedim kullandığım pic 18f2550

^

@        __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_1_2H ' config ayarı
INTCON2.7 = 0         ' Enable internal pullups on PORTB 
T0CON = %11010101     ' 
INTCON = $a0          ' Enable TMR0 interrupts 
ON INTERRUPT GoTo kesme 

yapılıcakisler:

vs:

vs:

vs:

dousbout:




dousbin:





disable
kesme:
saniye=saniye+1
if saniye=60 then
                usbservice
                USBbuffer[3] = $09  
                gosub DoUSBOut
                gosub son1 
          endif
INTCON.2 = 0 ' Reset timer interrupt flag
resume


yukardada yazdığım gibi saniyede 60 defa kesmeye girdiği için aradaki işleri yaptıramıyorum bana 2 saniyede bir kesmeye yada yapılıcak işin sırası gelince tek bir kesmeye girse harika olur su durum da bir saniyeyi hesablamak için saniyede  60 defa kesmeye gidiyor 60 defa gidincede diğer işler yapılamıyor bunu nasıl aşarım veya aşmanın bi yolu varmıdır mantıklı düşününce sanki biraz zor gibi ama diğer yandan sonuçta bir program bu herşey yapılabilir gibi geliyor.

Ziya

timer 0 kaynağını hariçten bir osilatör devresi ile beslersen frekansı ayarlayabilirsin. Bunun yerine timer1'i kullan. 16 bitliktir ve 3 bit postscali var. CCP1'i compare modunda çalıştır ve *reset on match* seçeneğini kullan. karşılaştırma değerlerini de büyük seçersen en azından saniyede 60 değil de 5 defa kesmeye gidersin. Tabi frekansına bağlı olarak bu karşılaştırma ve postscale ayarlarını belirlemelisin.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

ibo1973

teşşekür ederim  deniyim bi bakıyım sonuç neolucak.

muhittin_kaplan

Usb Komutlarıyla Beraber interruptları kullanabiliyormusunuz. ben RB0 int. beceremedim. Bu Konuda Yardımlaşabilirsek Sevinirim.

ibo1973


muhittin_kaplan

proton+ kullanıyorum kesme rutnleri kapatılıyor. ve rb0 kesmesi çalışmıyor. yapmak istediğim şu aslında
rb 0 a bakıp usb den (klavye description olarak) istediğim kodu gönderecek. ama rb0 ı çalıştıramadım.