Led'i sonsuz yanmiyor

Başlatan isa_1907, 13 Aralık 2013, 14:41:37

isa_1907

Arkadaslar merhabalar,
Pic16f877 kullaniyorum basit bir buton led uygulamasi kodu yazdim dogru.Kodla ilgili bir sknti yok.Tek skntim devrede 1 saniye yaniyor ve duruyor aslinda kodda sonsuz bir dongu var butona bastiginda yanacak ve elini cektginde halen yanmaya devam etmesi gerekirken, led sonuyor.
Onerilere ve yardima ihtiyacim var, yardim edicek arkadaslar oncelikle kodun dogru oldugunu varsaysinlar.

mistek

Sorunsuz kodu birde biz görebilir miyiz?
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

isa_1907

#2
while(1)
{
int a=0;
if(RB0==1)// buon basiliyor
a=1;
while(a==1)
RD0=1;// led yaniyor
}

mdargut

Watchdog timer kapalı mı? Eğer açık kalmışsa süre dolunca işlemci resetleyip programın başına dönüyor olabilir. Buton basılı olmadığı için led sönüyordur. Başka bir resetleme sebebide olabilir tabiki. Mesela besleme nasıl?

isa_1907

Watchdog timer kapali. Besleme 7805 ile geliyor direk 4,98v var devrede baska bir guc kaynagi da kullanarak denedim direk 5 v verdim sonuc ayni, led in hep yanmasi gerekirken yanmiyor

Tagli

"Bir saniye yanıyor, sonra sönüyor" demişsin. Bu süre her seferinde aynı mı? LVP'yi devre dışı bıraktın mı?
Gökçe Tağlıoğlu

engerex

Reset mi atıyor onu görmek için kodun başına bir şeyler ekleyebilirsin. Örneğin başka bir port/pine başka bir led bağla. Butona basilinca sonsun.

isa_1907

Alıntı yapılan: Tagli - 13 Aralık 2013, 17:49:49
"Bir saniye yanıyor, sonra sönüyor" demişsin. Bu süre her seferinde aynı mı? LVP'yi devre dışı bıraktın mı?
LVP ve watchdog sigorta ayarlarindan hepsi kapali, demek istedigim 1 sn de oluyor 2 sn de ama 3 sn calistigini gormedim.Sorun neden kaynaklaniyordur halen cozebilmis degilim?

Alıntı yapılan: engerex - 13 Aralık 2013, 19:36:13
Reset mi atıyor onu görmek için kodun başına bir şeyler ekleyebilirsin. Örneğin başka bir port/pine başka bir led bağla. Butona basilinca sonsun.

Reseti hangi durumlarda atar ki?

erpay

Devre şemasını da görebilir miyiz belki orada kaçırılan bir detay var.

z

Butona bastin ve led  1 sn yandi sonra da sondu.

1) Sondukten sonra tekrar butona basarsan gene yaniyor ve 1 sn sonra sonuyormu?

2) Programinda herhangi bir interrupt enable edildimi? 
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

isa_1907

Alıntı yapılan: erpay - 13 Aralık 2013, 21:41:01
Devre şemasını da görebilir miyiz belki orada kaçırılan bir detay var.

Devre semasi isiste calisiyor zaten mclr ucuna 10k ile 5v bagli...

Alıntı yapılan: z - 13 Aralık 2013, 21:49:30
Butona bastin ve led  1 sn yandi sonra da sondu.

1) Sondukten sonra tekrar butona basarsan gene yaniyor ve 1 sn sonra sonuyormu?

2) Programinda herhangi bir interrupt enable edildimi? 

1-) Ayni dediginiz gibi butona bastigim surece yaniyor elimi cektigimde hemn sonuyor.
2-) interrupt kullanmadim ve aktif edilmedi

mehmet

int a=0; ifadesini while(1) ifadesinden
önce koymayı denediniz mi?
İlla a sıfır olması gerek derseniz
sadece önceden int a; ile tanımlama
yapınız ve ilgili yerde a=0; olarak
kullanınız.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

xoom

o kadar kişi yardım etmeye çalışmış ama ne kod var ne şema ben bir devre kurdum bir şemam var ama reset atıyor hadi bulun :)
o kadar basit bir şema ve kod ise neden paylaşmıyorsun ! forumdaki insanlarımı sınıyorsun ?

isa_1907

Alıntı yapılan: xoom - 14 Aralık 2013, 08:48:09
o kadar kişi yardım etmeye çalışmış ama ne kod var ne şema ben bir devre kurdum bir şemam var ama reset atıyor hadi bulun :)
o kadar basit bir şema ve kod ise neden paylaşmıyorsun ! forumdaki insanlarımı sınıyorsun ?

Farkındaysan kodu yukarıda paylaşmışım dikkat etmen gerekiyordu xoom ;)

Şema dediğin nedir?İki direncli bir mcu lu bir led li şema ise artık gerek kalmadı sorunu çözdüm .PicKit2 ile config ayarlarından kaynaklı bir sorunmuş, LVP kapalı oldgunu sanıyordum ordan açıkmış.Herkese çok teşekkürler, bu devre bir buton ve led'in en yalın haliydi.Daha önceden 877 ile asansör devresinde sorum var demiştim, herkes kod yolladı, herkes kendi algoritmasını yazdı, biri stucture yapısına bile girdi.Hepsine minnettarım işime yaramasada elbet birilerinin işine yarayacaktır.Orada ki sorumda aynıydı, butona bastıgımda sonsuz döngüye girmiyor demiştim ve inanılmaz derece tuhaf yorumlar aldım.Kod böle olmaz, böle yazamazsın vs. Her yiğidin bir yogurt yiğişi vardır.Herkesin kafası aynı çalışmaz, işte ben kodu yalın yazmaktan yanayımdır.Proje bitsin tamamlansın, hatta yayınlarım bile en azından yeni başlayanlar için destekli yardımcı olur.PC kontrollü 877 ile yapılmış 4 katlı asansör sistemi...

Şimdilik sıkıntım yok ama olursa sorularıma burada tecrübeli forum üyelerinden her türlü yardımcı olacaklarından şüphem yok.Bilgi paylaşıldıkça güzel.İyi forumlar...

robomaster

Verdiğiniz program da neden butonu kontrol etmek için bir değişken illa kullandınız ki.
Ayrıca iç içe döngüler de cabası . Çok daha yalın yazılabilir. illa da benim kod diyorsanız biraz düzenlenmiş hali
1 kez butona basılınca led yanacaktır ancak ondan sonra basılma basılmama nın hiç bir fonksiyonu olmayacaktır  Not: x li satırları direkt sil aynı işi yapacaktır zaten ;)


int a=0;      x
while(1)
{
if(RB0==1)// buon basiliyor
a=1;          x
if(a==1)    x
RD0=1;// led yaniyor
}