Pic16f877 içindeki tmr0 ve tmr2 ile ilgili...

Başlatan Dagci-85, 03 Ağustos 2006, 20:46:37

Dagci-85

Merhaba...

Arkadaşlar PİC16F877 de tmr0 kesmesini kullanarak frekansı yaklaşık 150hz olan bir kare dalga üretiyorum. tmr2 yi kullanarak ta frekansı değişken (PR2 yi kullanarak, maks. 2Khz.) karedalga üretiyorum.

Sorum şu: Mesela diyelimki tmr2 den bir kesme oluştu. Kesme alt program çalışırken tmr0 dan da bir kesme olursa ne olur? Kesme alt program başa mı döner yoksa hiç bir kesme olmaz mı?

Aslında başımdaki sorun şu: maks. 2khz olan çıkıştan net bir 2khz alamıyorum. Sanki 2khz üzerine bindirilmiş 150 hz olan bir sinyal gibi bişey. Ve bu devamlı değişken. Aslında bu çıkışa normalde bir hoparlör bağlı. bu hoparlörden net bir düüüüt sesi duymam gerekirken çok rahatsız edici bir ses geliyor. Acaba bu timerleri nasıl kullanmam lazım?

Saygılar...

Ziya

interrupta girdiğinde GIE biti 0 olur. Yani başka interrupt gelse de işleme konmaz. İnterrupttan çıkarken (retie) interruptı gelen her ne ise ilgili flagi set edilmiş ise interruptan çıkar çıkmaz tekrar interrupta döner. O nedenle interrupttan çıkmadan ince flaglerden set edimiş olan var ise onların işlemlerini halletmenizi tavsiye ederim. Bazı flagler işlem yapılınca kendiliğinden silinir (uart buffer okuma ya da yazma gibi), bazılarını sizin sıfırlamanız gerekir rb0 interraptı gibi.
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

Dagci-85

Anladım. O zaman yine az da olsa iki timer çakıştıkları anda birisinin yapması gereken işte gecikme olacak. Doğru mu söylüyorum? Yani bundan kurtuluşum yok mu?

Ziya

interruptlarında yapılan işlerin uzunluğuna göre değişir. O nedenle hazır interrupt rutinine girmişken başka interrupt isteği var mı diye (set edilen flaglere) bakmanda fayda var. Eğer CCS gibi bir dil kullanıyorsan ve interruptlara gidiş ve dönüşlerde zaman kaybı olmasın diyorsan context savinf işlemlerini kendinin yapacağı ayarı seç. Assembler kullanıyorsan sorun yok zaten kendin yazacaksın.
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

Dagci-85