TIMER1 kesmesinde prescaller değerini nasıl 1:64 olarak ayarlayabilirim

Başlatan Analog, 13 Kasım 2023, 23:32:26

Analog

PIC628A işlemcisini 20Mhz hızında kullanıyorum. Bu işlemcide Timer1 kesmesinde 500 mili saniyelik kesmeler oluşturmak istiyorum. PicMultiCalc programına göre 500 mili saniye kesme oluşturmam için Timer1 kesmesini 1:64 prescaller değeri çıkıyor. İşlemcinin datashettinde 1:8 prescaller değeri var, bunu 1:64 çıkartabilir miyim yardımlarınızı bekliyorum arkadaşlar.

oguztkn

TMR1 prescaller max 1:8 olarak gözüküyor. O zaman 500ms yerine 100ms'lik kesme kur. Sonra kesme içerisinde sayaç değişkeni ata. Bu değişkeni her kesmede 1 arttır ve 5 olduğunda 500ms'lik kesme olmuş gibi işlem yapmayı dene istersen. Direk çözüm değil ama bir arka yoldan gidiş diyelim :)

ete

Çözüm mümkün olan enbüyük bölme oranını (1/8) kullanıp karşılık gelen süreyi ihtiyacınız olan sayıda çalştırmak. Başka yolu yok

Ete

Analog


ete

Bazen donanımın gerektirdiği hızda çalışmak daha uygun olur.
Bir sakınca yok ise TMR1 sayacını 500ms lik dilimler halinde çalıştırman mümkün .
Bunun için 4Mhz OSC hızını kullanman , bölme oranını 1/8 alman ve önyükleme değerini 3036 olarak vermen yeterli.

20 Mhzde ise 500 ms için TMR1 sayacını 100ms lik dilimler halinde çalıştırıp 5 kesme saydırman yeterli. Yukarıdaki ayarları kullanacaksın yine.

Ete

Powered by EzPortal