ccsc ile aynı anda birden fazla timer çalıştırmak

Katılım
31 Ara 2009
Mesajlar
15
Puanları
1
ccsc ile aynı anda birden fazla timer nasıl çalıştırabilirim lütfen yardım
 
Aynı anda çalıştırmaktan neyi kastediyorsunuz? timerların hepsi ayarlansın ve çalışsın istiyorsanız o kolay. Birer birer ayarlayıp çalıştırırsınız. Aynı anda demekle kastettiğiniz, aynı anda hepsi 0 dan itibaren artarak saymaya başlayacak ise bunun ccs ile ilgisi yoktur. Donanımın böyle bir şeye müsaade edip edemeyeceği bir durumdur ki bildiğim kadarıyla hiç bir mcu da böyle bir şey yok. Eğer 3-5 mikrosaniye farkla çalışması aynı anda çalışma olarak kabul edilirse bu mümkündür. Sırayla timerları devreye alırsınız, veya resetletip sıfırdan başlatırsınız.
 
kesmelerin hepsini aktif yapıp önceliklerine göre seçim yapabilirsin. komutlar;

#priority ext,ext1,rb,timer1,....vb

#int_timer1
void timer1_int()
{
...
}

#int_timero
void timer0_int()
{
...
}

gibi...
iyi çalışmalar...
 
konuyu yanlış yazdım ccs c diliyle pic te programdan bahsetmiştim ama yazdıkların da açıklayıcı oldu ilgine çok teşekkürler pic i plc gibi tasarlamak istiyorum makinada bir siviç kapanınca timer1 devreyegirecek 10sn çalışacak timer2 timer1 den 3sn sonra devreye girecek ve aynı anda yada timer1 den 5sn sonra devreden çıkacak gibi bir timer uygulaması düşünmüştüm bununla ilgili çalışıyorum bir şey oluşturabilirsem paylaşacağım
 
En küçük zaman diliminiz saniye mi? Öyleyse timer2 vs. gibi donanımı kullanmayın.bir adet sn timeri kurun. Gerisini soft timerlarla çözersiniz.
 
saniye vedakika olabilir ccs c dilini yeni öğreniyorum ve başkada dillere dallanmak istemiyorum soft timer nedir bilmiyorum ama verdiğiniz her bilgi bana yol gösterici vede paha biçilmez değerde ustam ilginize çok tşekkür ederim
 
soft timer dediğimiz şey normal sayaç aslında. Yani artması istenmiş ise her saniye artan bir sayaç (y=y+1; veya y++;) Sizin yapmanız gereken bir adet saniye sayacı oluşturmak. Bunu timer1'i ve CCP modülünden birini compare modunda kullanarak belki 200 ms. de bir kesme elde edip, 5 defa kesmeye gidildiğinde saniye tutan biti 1 yaparak sağlayabilirsiniz. Ondan sonra kaç tane timer kullanacaksanız her biri için bir sayaç (T1++; T2++; T5++; gibi) oluşturup işinizi görebilirsiniz.

İkinci yol, ds1307 saat çipini kullanırsanız, (cr2032 pil ile 10 yıl saat çalıştırır), dahili ayarında her saniye dışarı puls veren modu seçip, bunu da pic harici kesmesine bağlayıp, veya timer1'i counter moduna alıp, girişi saat çipi çıkışından alırsanız her saniye artan bir sayacınız da olmuş olur.
 
Hocam cok aydınlatıcı oldu teşekkür ederim.
 

Forum istatistikleri

Konular
128,354
Mesajlar
916,964
Kullanıcılar
450,214
Son üye
toru77

Yeni konular

Geri
Üst