Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

count komutu

Başlatan neron, 26 Mart 2009, 17:33:36

neron

count komutunda pin, sure, degişken seklınde kullanırken ordakı sureyi bir butona basıldıgındakı sure kadar yani kullanıcıya baglı bişey yapma ımkanımız var mı yardım edersenız sewınırım

fractal

ccs c de öyle bir komut yokki
Restantum cogniscutur Quantum deligutur

ete

Öyle bir imkan yok maalesef. Timer sayacı kullanarak kendin bir şey yapmak zorundasın.
Bunun için TMR0 yada TMR1 kullanabilirsin.
Her ikisinden birini 1/1 bölme oranı ile çalıştırırsan istediğini yapabilirsin.
Her iki sayacın hariçten gelen palsleri saymak için kendine ait giriş pini vardır. TMR0 için genelde PortA.4 kullanılır. TMR1 giriş pini pice göre değişebilir. Pic bacaklarında yazılı olan ifadelerden /T1CKI ifadesinin olduğu bacak giriş bacağıdır. Mesela 16F628 de bu PORTB.6 bacağıdır.
Önceden ayarlamanı yaparsın. Tuşa basıldığında zamanlayıcıyı çalıştırır tuş bırakılınca zamanlayıcıyı durdurur ve değerini okursun. Böylece aynı işi isteğin doğrultusunda yapmış olursun.
Unutma TMR0 8 bitlik bir sayıcı, TMR1 ise 16 bitlik bir sayıcıdır.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

neron

arkadaslar ben bu işi pic basic pro da yapmak istiyorum
count komutundakı sureye tımer0 dan okudugum degerı mı yazıcam

ete

neron,
Olayı hala anlamadığını ben anlıyorum.
Count komutunu kullanmayacaksın. Çünki bu komut ile istediğini yapman imkansız.
Şimdi ben anladığımı tekrar anlatayım sende doğrula.
Bir butona basıldığı sürece bir pinden gelen palsleri saydırmak istiyorsun. Sayma işlemi butona basıldığı sürece yapılacak buton bırakılınca sayma duracak. Buraya kadar tamam sanırım.
Bu işi Count ile yapayacağını söyledim. Çünki komuta müdahale etme imkanın yok maalesef. O halde aynı işi başka bir yolla yapmanın yolunu aramak gerek. Onunda çaresi TMR0 veya TMR1 sayaçlarından birini kullanmak.
Butona basıldığı sürece sayılacak pals sayısı 255 ve altında ise TMR0 255 ile 65535 arasında ise TMR1 sayacını kullanmak gerekir.
Yapacağın iş;
1. Kullanacağın sayacın önce hariçten komut tetik almasını sağlayacaksın) yani sayac dışardan gelen palslerle sayma yapacak.
2. Sayacın bölme oranı 1/1 olacak.
3. Butona basıldığı anda sayacı sıfırlayacaksın ve buton bırakılınca sayac değerini okuyarak bir başka değişkene vereceksin.
Değişkendeki değer butona basıldığı sürece gelen palslerin sayısını verecek.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

neron

eyw cok sagol
sımdı tam anlamıyla anladım ama sımdı sen bana bıde tımer ı nasıl kullancagımı anlatırsam cok sevınırım

ete

TMR0 kullanacak isen;
OPTION_REG=%11101000
Komutunu programın başında bir yerde ver.
Butona basılır basılmaz hemen;
TMR0=0 yapılmalı ve buton bırakılınca SAYAC=TMR0 şeklinde sayılan değer SAYAC değişkenine aktarılmalı.

Mesela;
IF TUS=0 then
  TMR0=0
WHILE TUS=0:WEND
SAYAC=TMR0
şeklinde bir program parçası bu işi yapar.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com