CCS C Timer0, Timer1 ve Timer2 her saniye kesme oluşturmak?

bagztov

Üye
Katılım
5 Nis 2018
Mesajlar
175
Puanları
6
Yaş
25
Herkese merhaba, iyi forumlar.

Ben pic ile LCD'de oluşturduğum menüde örnek olarak;

Su doldurma süresi 5sn
Su doldurma aktif etme süresi 50sn

Yazıyorum. Bunları işaretsiz 8 bit değişkenlerin değerlerini buton vasıtasıyla arttırarak veya azaltarak lcdye yazdırıyorum ve kayıt butonuna basıldığında iki değişkeni eeproma kaydediyorum. Ayrıca su doldurma aktif etme süresinin değişkeninin 60'a bölümünden kalanı yazdırarak süre 59 saniyenin üstüne çıktığında dakika ve saniye cinsinden yazdırıyorum.


Mesela menüde su doldurma süresi 2 sn olsun
Su doldurma aktif etme süresi 30 olsun.

Planım timer 0 kullanarak her saniye kesme meydana geldiğinde x değişkenini birer birer arttırmak ve x 30'a eşit olduğunda herhangi bir pini lojik1 yapmak.
Timer 2 kullanarak her saniye kesme meydana geldiğinde y değişkenini birer arttırmak ve y 2'ye eşit olduğunda ilgili pini lojik0 yapmak.

Fakat hesaplamalarda bir türlü timer süre değerlerinde 1 saniyeyi yakalayamadım. Hesaplamaları tam olarak anlayamadım galiba. Pic timer calculator diye bir web sitesi var onu da denedim ama ne yaptıysam 1 saniyeyi göremedim. Hep 1 saniyenin altında değerlere ulaştım. Bu arada kullandığım kristal osilatör 20MHz.

Teşekkürler.
 
bölme oranı kaç tam olarak bir saniye de olmayabilir çok yakınsa sıkıntı olmayabilir
 
Millis ile yap ne timeri ne kesmesi
Hocam öncelikle cevabınız için teşekkür ederim. Geç yazdığım için kusura bakmayın lütfen. Bu millis nedir? Nasıl kullanılıyor o konu hakkında bir fikir verebilir misiniz? Arduino'da kullanıldığını gördüm ama ccs c'de olduğunu bilmiyordum açıkçası.
bölme oranı kaç tam olarak bir saniye de olmayabilir çok yakınsa sıkıntı olmayabilir
Öncelikle cevabınız için teşekkür ederim. Geç yazdığım için kusura bakmayın lütfen. Şu an pek müsait değilim ama diğer bilgisayara geçince yazmaya çalışacağım gerekli blgileri.
 
Arduino sandım pic olduğunu farketmedim. Timer şart degil. Bu şekilde basit dongulerle hassas iş çikartabilirsin, yeter ki akıllıca tasarlansin.

zaman=0;
while(zaman<20) // 20x100 = 2 sn

{
LCD ye yaz;
Şunu yap;
Bunu yap;
delay_ms(100);
zaman++;

}
 
CcsC Project Wizard da girdiğin mcu çalışma frekansı, timer ayar değerleri kısmını fotoğraflayıp ekle,
kodun zamanlama ile ilgili kısmlarını ekle kontrol edelim.
 

Forum istatistikleri

Konular
128,126
Mesajlar
915,241
Kullanıcılar
449,839
Son üye
Qkay

Yeni konular

Geri
Üst