Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => Konuyu başlatan: ustacrazy76 - 01 Aralık 2015, 19:57:45

Başlık: 18F4550 butonla led yakma
Gönderen: ustacrazy76 - 01 Aralık 2015, 19:57:45
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ı

(http://i.hizliresim.com/p8XGLN.jpg)
Başlık: Ynt: 18F4550 butonla led yakma
Gönderen: Cemre. - 03 Aralık 2015, 16:48:55
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.
Başlık: Ynt: 18F4550 butonla led yakma
Gönderen: erpay - 03 Aralık 2015, 18:44:21
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.
Başlık: Ynt: 18F4550 butonla led yakma
Gönderen: selimkoc - 03 Aralık 2015, 23:31:16
Linkteki yazıyı inceleyiniz. Öncelikle buton kontrolünü bilmeniz gerekir.

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