pic'i beklemeden çıkarmanasıl olur

Başlatan kemalguler, 19 Mart 2007, 09:38:18

kemalguler

Degerli dostlar pic aşağıdaki  proğram parçasını yazmış olalım.



         bsf      PORTA,0
         call      5DKZAMAN
         bcf       PORTA,0

anlaşılacağı gibi porta nın 0.biti 5 dk aktif olduktan sonra pasif hale gelecek.burada 5 dk lık zaman dolmadan herhangi bir anda bir butana bassam çıkışı nasıl pasif yaparım.bunun için buton girişi olarak int yani RB0/INT mi kullanmam gerekir.veya nasıl bir yol izleyeyim.şimdiden teşekkürler.

XX_CİHAN_XX

Hayır daha basit bir yolu daha var.
5dkzaman alt programındakı gecıkme yapan en kucuk dongu içerisine buton sorgusu yerlerştirip butona basıldıysa dırek return komutu ıle gecıkmeden cıkarak portu bcf yapan satırı calıstırabılırsın.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

Klein

İn kullanmak çoğu zaman en iyi yöntemdir. ama kullanmak zorunda da değilsin.  5 dakikalık zaman döngüsünün içerisinde de butonu kontrol edebilirsin.
En doğru yöntemi biz değil , programının yapısı yani sen belirleyebilirsin. Kolay gelsin.

Eagle_Tim

evet arkadaşlara katılıyorum fakat döngü içersine giren sorgular algoritma olarak ilerde çok soruna neden olur.
ilk olarak 5 dk kalık süre hesabı bozulur, zaman programı süresi yeniden hesaplanamak zorunda kalınır yeni bir buton koymak isterseniz yeniden hesap ve return la çıkmakta kurtarmaz artık başka bir registerle falg set yöntemi gerekir vs.. daha sonra ise programı 5 dk bir zaman programında meşgul etmek iyi olmaz. bunun yerine tmr0 ile bir zaman döngüsü kurarsan hem gelecekte bu buton sayıları artttığında zaman programı içine sokamayacağın hemde programı 1 döngüye kitlemek mecburiyetinde olmayacağın için ve kaç buton eklesende ana programda ki sorguların tmr0 süresi hesabını bozamaz tekrar tekrar hesap gerekmez, daha iyi bir iskelet program olur.. bunun gibi değişik yöntemlerde kullanılabilir.
Software and Hardware Design...

venusson

tecrübelerime dayanarak söylüyorum en iyi yöntem kesilim yöntemi
ats2000

kemalguler

Zaman döngüsü içine buton sorgulası yaptırarak problemimi çözdüm.belki uzun  ve iç içe zaman zaman dögülü yazılımlarda istenmeyen sonuçlar doğabilir ama benimki basit bir uygulama.katkılarınızdan dolayı tüm arkadaşlarıma teşekkür ederim.sağolun.