Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

çok basit ve ilginç bir sorun...

Başlatan samuray84, 31 Aralık 2011, 11:58:13

samuray84

Merhaba arkadaşlar, uğraştığım devre baya karmaşıklaştı ama şu saçma sorundan dolayı koca devre de sıkıntılı çalışıyor. şöyle ki:

if(input(pin_a0))
output_high(pinb0);

else
output_low(pin_b0);

yani mantıken, eğer a0 portuna akım geldiği an b0 portunu 1 yapması, akım gittiği an 0 yapması lazımken, bu alet a0'a akım geldiğinde 1 yapıyo ama akım gittiğinde 3-4 saniye bekledikten sonra 0 yapıyor, arada da pırpırlanıyor. Farklı 3 tane 16f877A da denedim hepsinde aynı sorun oldu.
bi de şu var, yaklaşık 3v ve düşük amperde bir akım geliyor. 5v gelmiyor a0 pinine. Onunla ilgili olabilceğini pek düşünmedim ama not olarak ekleyim dedim.

fahri-

1.A0 portunu digital giriş olarak tanımladınız mı?
2.Devre şeması olmadan gerilimler hakkında nasıl yorumda bulunalım?

JKramer

A0 pin'ini biraz yavaş kontrol edin, atıyorum 100 ms'de bir if(input(PIN_A0) sorgusunu yapsın. Kataloğa göre A0 pini TTL'miş, bu yüzden 2V üzeri lojik-1 olarak algılanacaktır.

bymrz

biraz klasik olacak ama MCLR yi unutmadınız değil mi?

subram

Alıntı yapılan: samuray84 - 31 Aralık 2011, 11:58:13
Merhaba arkadaşlar, uğraştığım devre baya karmaşıklaştı ama şu saçma sorundan dolayı koca devre de sıkıntılı çalışıyor. şöyle ki:

yazdığın programda tüm işlemler ne kadar sürede yapılıyor. programda fazla bekleme komutu varsa ilgili satıra sıra 3-4 saniyede geliyor olabilir
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

ete

Komutun birinde ,
output_high(pinb0)
şeklinde kullanmışsınız. Diğerinde ise ,
output_low(pin_b0)
Birisi Pinb0 olmuş diğer Pin_b0 şeklinde olmuş . Bunların aynı olması gerekmezmi?

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

z

A0 piniyle GND arasina 10K direnc baglayin bir de oyle deneyin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

samuray84

evet şimdi buraya elle yazdığımdan yazım hatası olmuş, kodun syntax'ını doğru varsayın. sorun başka, derlenirken hata oluşmuyor. Kod da bukadar, başka hiç bi işlem yapmadan bu kodu derleyip pic'e yüklediğimde oluşan sorun bu.

MCLR yi unutunca hic yanmıyo lamba :)

direnc de var bitane 220 ohmluk

önceden
tris_a(0x11);
tris_b(0x00);
output_a(0x00);
output_b(0x00);

tanımları da yapıldı, başka bi kod yok

z

if(input(pin_a0))
output_high(pinb0);

else
output_low(pin_b0);

Programin devaminda ne var peki?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

samuray84

devamında bişey yok bukadar kod. bu düzgün çalışırsa başka bi kod dizisine eklencek sadece

RcALTIN

Alıntı yapılan: bunalmis - 31 Aralık 2011, 14:57:36
if(input(pin_a0))
output_high(pinb0);

else
output_low(pin_b0);

Programin devaminda ne var peki?

pic kodları biraz ağırdan işlettiğinden, sonsuz döngü içindeki iterasyonla alakalı bir sıkıntı olabilir mi? ana döngünün sonuna 10-100mslik bir gecikme koymayı denermisiniz.
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !

mdargut

Giriş gerilimi ilk anda düzensiz gibi duruyor. Pin değerini direkt kullanma. Önce bir değişkene ata, sonra bu değişkeni kullan döngüler içinde. Birazda gecikme ekleyebilirsin.

shark27

küme parantezlerini koymamaışsınız etkilermi acaba?

if(input(pin_ao))
{
output_high(pin_b0)
}
else
{
output_low(pin_b0)
}

z

Alıntı yapılan: samuray84 - 31 Aralık 2011, 16:03:59
devamında bişey yok bukadar kod. bu düzgün çalışırsa başka bi kod dizisine eklencek sadece

Programin sonuna bir seyler eklemelisin. Varsa watchdog resetler, program basa doner vs vs.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

samuray84

bu zaten while döngüsü içinde. tamam döngünün sonuna biraz gecikme koyayım bakalım nolcak. Kodu eksiksiz olarak ve sonucunu da yazcam uyandığımda:) herkesin iyi bir yeni yıl gecirmesi dileğiyle... iyi geceler