Buton uygulamam çalışmıyor.Bir bakar mısınız?

Başlatan protezdiyot, 22 Temmuz 2014, 11:51:54

protezdiyot

Merhaba.Aşağıdaki uygulamayı 16f628a ile yaptım ama  hiçbir buton çalışmıyor.sadece Enerji verirvermez b2 ledi yanıyor?

#include "C:\Documents and Settings\Desktop\pic programlama\16f628.h"

#use delay(clock=4000000) 
#fuses INTRC,NOMCLR,PROTECT,NOWDT
#fuses PUT,NOLVP,NOCPD,NOBROWNOUT
void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab

   // TODO: USER CODE!!
   
   {set_tris_a(0x03);  //A0,A1 giriş diğerleri çıkış
   set_tris_b(0x00);  //B portu komple çıkış
   output_b(0x00);
 
   while(1) // Sonsuz döngü
   {if(input(PIN_A0)==0 ) //Buton-1 basılımı?
   {output_high(PIN_B2); // Ledi yak
   while(input(PIN_A0)==0); // Butonun bırakılmasını bekle
   output_low(PIN_B2); // Ledi söndür
   delay_ms(25);  //debounce süresi
   } if(input(PIN_A1)==0 )  //Buton-2 basılımı?
   {while(input(PIN_A1)==0); //Butonun bırakılmasını bekle
   output_toggle(PIN_B3); 
   delay_ms(250);//Led'in durumuu değiştir}}}
}}}}

Salih

Giriş pinlerine pull-up direnci bağladın mı?

RaMu

Butonları nasıl bağladın fotosunu
şemanı ekle.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html


RaMu

Butonların sağında bağlı olan, +5V a giden,
üzerinde 630 altında 10k yazan direncin
değerini değiştirememişsin,
direncin üzerine çift tıklayıp (630 yazısına değil)
direncin değerini 100 ohm yap,
bu daha birşey değil,
salih inde tahmin ettiği gibi
buton bağlantın yanlış,
ya buton bağlantını yada programını değiştirmen lazım,
programın butona basıldığında 0 gelecek diye bekliyor
ama şemana bakınca butona basınca 1 geliyor
yani en kolayı
if(input(PIN_A0)==0 ) ve A1 leri  ==1 olarak değiştirmen.
Bu programını közelliklemi kod korumalı yazdın?
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

protezdiyot

#5
Pic programlamada yeniyim.İnternetten bulduğum dökümanlarla birşeyler yapıyorum.Kod koruması nedir,hangi komut bunu gösterir ve ne işe yarar?Söylerseniz sevinirim.

mesaj birleştirme:: 23 Temmuz 2014, 04:03:31

Teşekkürler.==1 yapınca isi te düzeldi.Ancak,devre üzerinde çalışmıyor?? Son hali:
#include "C:\Documents and Settings\Tedas\Desktop\pic programlama\16f628.h"
#use fast_io(a) // Port yönlendirme komutları A portu için geçerli
#use fast_io(b) // Port yönlendirme komutları B portu için geçerli
#use delay(clock=4000000) 
#fuses INTRC,NOMCLR,PROTECT,NOWDT
#fuses PUT,NOLVP,NOCPD,NOBROWNOUT
void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab

   // TODO: USER CODE!!
   
   set_tris_a(0x03);  //A0,A1 giriş diğerleri çıkış
   set_tris_b(0x00);  //B portu komple çıkış
   output_b(0x00);
 
   while(1) // Sonsuz döngü
   {if(input(PIN_A0)==1 ) //Buton-1 basılımı?
   {output_high(PIN_B2); // Ledi yak
   while(input(PIN_A0)==1); // Butonun bırakılmasını bekle
   output_low(PIN_B2); // Ledi söndür
   delay_ms(25);  //debounce süresi
   } if(input(PIN_A1)==1 )  //Buton-2 basılımı?
   {while(input(PIN_A1)==1); //Butonun bırakılmasını bekle
   output_toggle(PIN_B3); 
   delay_ms(250);//Led'in durumuu değiştir}}}
}}}

Recep METE

PROTECT: Kod Okumaya Karşı Korumalı
NOPROTECT: Kod Okumaya Karşı Korumasız
PROTECT_50%: Kod Bölgesinin %50'si korumalı.
Kod koruma,emek vererek yaptığınız çalışmanın başkaları tarafından araklanmasını ölemek için konulur.Programın sigorta ayarlarında(#fuse) bu işlem yapılır.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

protezdiyot

#7
Alıntı yapılan: semfero - 22 Temmuz 2014, 14:08:57
PROTECT: Kod Okumaya Karşı Korumalı
NOPROTECT: Kod Okumaya Karşı Korumasız
PROTECT_50%: Kod Bölgesinin %50'si korumalı.
Kod koruma,emek vererek yaptığınız çalışmanın başkaları tarafından araklanmasını ölemek için konulur.Programın sigorta ayarlarında(#fuse) bu işlem yapılır.
Çok teşekkür ederim.Devrem breadboard üzerinde çalışmadı yalnız.Sorun ne olabilir?Direnç mi?Bir yerde şunu okudum;Uygulamada yüzlerce buton okuma komutu girin.Yoksa parazitlerden ötürü devreniz çalışmaz??

mesaj birleştirme:: 22 Temmuz 2014, 14:22:40

Sorunumu buldum.630ohm luk direnci çıkartıp direkt 5 V butona verince düzeldi.Yalnız bir diğer sorun;Enerji verirvermez b3 ledi yanıyor?Ben bastıktan sonra yansın,basınca sönsün istiyorum.

RaMu

Bu işler böyle zor olur,
en iyisi güzel bir kitaptan sırayla tüm örnekleri yapman,
veya netteki düzgün anlatımları adım adım takip etmen,
özellikle c yi öğrenmek üzerinide çalışabilirsin
md.ye bakmadan önce.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html