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}}}
}}}}
Giriş pinlerine pull-up direnci bağladın mı?
Butonları nasıl bağladın fotosunu
şemanı ekle.
(http://s8.postimg.cc/kiy1a0jnl/cats.jpg) (http://postimg.cc/image/kiy1a0jnl/)
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?
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}}}
}}}
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.
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.
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.
Çalışan buton uygulaması
http://www.teknikders.com/index.php?sayfa=video&videoid=7 (http://www.teknikders.com/index.php?sayfa=video&videoid=7)