Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

18F4550 butonla led yakma

Başlatan ustacrazy76, 01 Aralık 2015, 19:57:45

ustacrazy76

arkadaşlar selamın aleyküm fazla zamanınızı almak istemiyorum hemen konuya geçicem...

4550 kullanarak butona 5 kere basınca led yanıcak tekrar 5 kere basınca sönecek bu kodu yazmaya çalışıyorum ama nerde sorun var anlamadım yardımcı olursanız sevinirim kodum bu:

short y=0;
void main() {
trise=0x08;
porte=0x00;
adcon1|=0x0f;
while(1){
porte=y;
if(porte.f3==0) y++;
while(porte.f3==0);
delay_ms(150);
if(y==5){porte.f0=1;
porte.f1=1;
porte.f2=1;}
delay_ms(100);
if(y==10) y=0;
} }


buda devre şeması


Cemre.

Hocam iyi akşamlar.

Yanlış anlamazsanız bir tavsiyede bulunup sorununuzdan bahsedeceğim. Öncelikle daha basit bir örnekle başlamanızı tavsiye ederim, örneğin buton nasıl okunur, buton okumak için butonu bağladığım işlemci pinini giriş mi tanımlamalıyım çıkış mı tanımlamalıyım, port yönlendirmesi nedir, nasıl yapılır gibi konulara gerçekten hakim olduktan sonra bu sorunun aslında ne kadar kolay çözülebileceğini göreceksiniz sanıyorum.

Yazdığınız kodda gördüğüm ilk sorun yukarıda bahsettiğim durumla alakalı. İşlemcinin B portunun 0. pinine bir buton bağlamışsınız. Ancak kodunuzda bu pin yada port ile alakalı hiç bir yönlendirme ya da okuma amaçlı satır yok. MCLR pinine bağlı butonu okumak istiyorsanız öncelikle işlemcinin MCLR işlevini iptal edecek configurasyonu sağlamış olmanız gerekir. Bunlara bakarak bir yol çizebileceğinizi düşünüyorum.

erpay

Sanırım "if(porte.f3==0) y++;" burada buton okumaya çalıştınız @hüseyin67'nin dediği gibi bu ilgili pini okumuyor ayrıca doğru yazmış dahi olsanız y bir anda siz butondan elinizi çekene kadar onlarca artmış olabilir diğer bir nokta da bouncing olayı var butonlarda bunu da incelemeniz gerekiyor.

MikroC'nin kütüphaneleri ve örnekleri başlangıç için yardımcı olabilir.

selimkoc

Linkteki yazıyı inceleyiniz. Öncelikle buton kontrolünü bilmeniz gerekir.

https://elektrokod.wordpress.com/2013/11/18/buton-kontrolu/