M

PicBasic Ledleri low yapma problemi

Başlatan maximus, 14 Nisan 2012, 20:13:55

maximus

Merhabalar,

label:
HIGH PORTB.0
HIGH PORTB.1
PAUSE 250
low PORTB.0
low PORTB.1
goto basla
end


seklinde 2 ledin once yanmasini ardından ise 0.25 san sonra ise sonmesini istiyorum fakat led yaniyor ama asla sonmuyor.yardımcı olursanız cok sevinirim.
Saygılarımla

ete

Ledlerin aslında sönüyorlar ama sönük kalmaları için bir süre vermediğin için sönmeleri ile yanmaları bir oluyor ve sende sönük kaldıklarını göremiyorsun. Yanık kalma süresi verdiğin gibi sönük kalma süreside vermelisin.

Ete

F®T

Bekleme süresi  PAUSE 250 yerine pause 1000 yaz bakalım belk süre kısadır.

label:
HIGH PORTB.0
HIGH PORTB.1
PAUSE 250
low PORTB.0
low PORTB.1
pause 250'burayada bekleme koyman lazım yoksa yanıp sönmeyi göremezsin.
goto basla
end
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

maximus

#3
tesekkurler yardım icin yalnız ben 0.25 san kafadan attım. bunun belli bir sınırı var mı? ve ek olarak ben yanmasını ama belirledigim sureden sonra sonmesini istiyorum. surekli yanıp sonmeyecek

wishes

#4
etiketten önce low dersen ebedi söner

low PORTB.0
low PORTB.1

label:
HIGH PORTB.0
HIGH PORTB.1
PAUSE 250
low PORTB.0
low PORTB.1
pause 250
goto basla
end

ete

Bekletme komutu Pause dir ve birimi mili saniye cinsindendir. 1sn=1000ms eşitliği ile istediğin süreyi verebilirsin.
Maksimum verebileceğin süre 65535 olacaktır. Ama üst üste iki pause koyarak veya daha fazla satır ilave eder veya döngü kurarak pause miktarlarını artırabilirsin.
Ama sıl yapmak istediğin ince bir programcılık zekası ister.
Yapmak istediğin derken sen bu ledlerin bir kere yanıp sonra sönmesini ve bir daha artık senisteyince yanmasını istiyorsun. Ama rpgrama bakarsan söndükten sonra pause verip GOTO BASLA diyorsun. Programda yeniden başla satırına gidip aynıkomutları yeniden icra etmeye başlayacak ve led yeniden yanıp yeniden sönecek bu bir döngü şeklinde devam edecektir.
Peki bu komutların yalnızca bir kere icra edilmesi için ne yapmak lazım. Tabiiki işin içine bir bit değişkeni katarak bu işide başarabiliriz.
POZ VAR BIT şeklinde bir değişken tanımlasak. Açılışta POZ=0 olacaktır otomatikman.
Programın BASLA satırından sonra şöyle bir ifade yerleştirsek, desek ki POZ=0 ise led yansın ve sönsün. Tabiiki led yanıp söndükten sonra POZ=1 yapılırsa program basla satırına gitsede artık ledler yanmayacaktır. Ne zamana kadar sen bir yerlerde POZ=0 deyinceye kadar elbette. Şimdi bunu uygulayalım;
low 
POZ VAR BIT
PORTB.0
low PORTB.1

label:
If Poz=0 THEN
HIGH PORTB.0
HIGH PORTB.1
PAUSE 250
low PORTB.0
low PORTB.1
pause 250
Poz=1
Endif
goto Label
end


İstediğin bu ise bu şekilde yapılacaktır. Farklı ise detay verirsen onada bir çözüm getirebiliriz.

Ete

maximus

çok teşekkürler Erol Bey,  önerdiğiniz kod ile istediğimi gerçekleştirdim. Bu site ile çok güzel bir paylaşım platformu oluşmuş. Sitenizin sürekli üyelerinden olacağım bu gidişle.
Saygılarımla

Powered by EzPortal