Ardışık yazılan portlarda çıkış verme sorunu.

Başlatan F.T, 10 Haziran 2015, 18:47:42

t2

IF ..   tek satır kullanımında, fazla kod nedeniyle  sorun çıkıyor olabilir. Satırın sonuna kadar çalışması gerek. beklenen budur.
Fakat yeni bir  Proton hatası olabilir. IF içndeki Kod dallanırken status register ile veya başka register ile ilgili bug olabilir.

bunun yerine endifli kullanalım
if tamam=1 then
gosub ..
gosub..
...

endif

Hatta her gosub için ayrı IF eklesek bile yeridir.
if tamam=1 then 
gosub.. dal1
endif

if tamam=1 then
 gosub.. dal2
endif





Alıntı yapılan: F.T - 11 Haziran 2015, 11:32:06
If MNEL=1 Then GoSub BAZER:GoSub....



F.T

Tüm denemelerimde proteuse ta hiç bir sorun oluşmuyor.Gerçek devrede sorun oluşuyor.Ayrıca bu hata portları aktif etmede veya devre dışı bırakmadada oluşan bir sorun.

Taglı hocam dediklerinizi çok varyasyonlarla denedim.Olmadı.
t2 hocam dediğiniz gibi bir deneme yapıcam.Sonucu yazarım.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

t2

Pinler çıkış modunda olsa bile, program bunu yanlışlıkla değiştiriyor bozuyor olabilir.

portc.6 ve portc.5 birlikte aktif yapmak için
high portc.5
high portc.6


yazalım. bence bu şekilde sorun çözülür.  bir de all_digital= true yazmak gerek galiba. pinde adc veya comparatör varsa iptal olması için gerekir.

z

Alıntı yapılan: z - 11 Haziran 2015, 06:01:36
PortC nin 5 ve 6 pinlerine ne bağlı?

mesaj birleştirme:: 11 Haziran 2015, 14:10:16

Bu iki komut arasına tek bir Nop koymak yeterli.

Fakat pin kapasitör yada düşük değerli dirençle yüklenmişse bahse konu sorun oluşacaktır.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

F.T

t2 hocam dediklerinizi deniyecem.

Z hocam pin çıkışında kapasitör var.Fakat daha öncede bu devreyi kullanmıştım.Bir sorun oluşturmamıştı.Sadece programsal eklemeler yaptım.Donanım aynı.Dediğiniz gibi daha önce pin çıkışını high yada low yaparken ardışık pin komutlarında bunu yaşadım ve nop eklemiştim.Fakat tek nop değil farklı sayılarda noplarla düzelmişti.Şu pin çıkışında kapasitör kullanımı olayını açarmısınız.Nasıl bir durum oluşturuyor?
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

z

Kapasitör bağlı pine 1 yazdığını hemen ardından da bir başka pini 1 yada 0 yapacagını varsayalım.
Biraz önce kapasitör bağlı bacağa 1 uygulanmış olsa bile şimdi bu portun bir başka pinine değer yüklemek için okunduğunda henüz şarj olamayan bu pin 0 olarak okuacaktır. Diğer pine ait değişiklik yapılıp porta geri yazılırken kapasitör bağlı pinin datası 0 olarak yazılacaktır.

Olay bu.

Normal şartlarda kapasitör bağlı olmasaydı ardışıl pin set reset komutları arasına sadece tek 1 nop koymak yeterli olacaktı.

Porta bu tip müdahalelerde bulunmak yerine PBVal gibi bir değişken tanımla.

Mesela bunun 0 ve 7 nolu bitlerini 1, 4 nolu bitini de sıfır yapacaksak

PBVal = PBVal or 0x81
PBVal = PBVal and 0xEF

yaparsın. Daha sonra da Portx=PBval olarak çıkarsın.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

F.T

Anladım hocam kapasitörsüz denemeyide yapıp yazarım.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

t2

evet olay şimdi anlaşıldı. yazılan porta kapasite bağlıyken  daha stabil hale gelmeden okunduğu için yanlış okunuyor yeniden yazılınca da yanlış yazılıyor.

OG

Alıntı Yappin çıkışında kapasitör var
Şaşırdım doğrusu, Sebep ?
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

F.T

OG hocam bu pinlerle röle sürüyorum.Pin çıkışında sırası ile  direnç, kapasite, transistör,ters diyod , röle var.Parazitten etkilenmesin diye düşünmüştüm.Bu şekil bir durum oluşturduğunu doğrusu bilmiyordum.Buda bize bir ders oldu .Siz hocalarımızın sayesinde.Ayrıca röleyi izolesiz besleme ile  sağlıklı sürme işi nasıldır.Anlatan olursa memnun olurum.Yada kullandığım yöntem doğrumudur?

mesaj birleştirme:: 11 Haziran 2015, 20:07:16

Sayın hocalarım.Ne yaptısam olmadı.Denilenlerin hepsini yaptım.Bu tip bir durumu mecburi durumlarda nasıl çözeriz çok merak ediyorum.

Çözümüm şu oldu.port c.5 ve port c.6 ya bağlı iki adet rölem vardı.port c.6 da bulunan röleyi  port d.7 pinine taşıdım.Sorunum bitti.

Yardımcı olan tüm hocalarıma teşekkür ediyorum.Allah razı olsun.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

z

Roleyi transistörlemi sürüyorsun? Eğer base bias direnci çok küçükse de aynı sorun olur.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

F.T

Bülent hocam pin çıkışı beyz arasında 1k var.

Ayrıca pin çıkışlarını boşa aldım ve direnç led ile direk sürdüm.Sonuç yine her senaryoda olumsuz oldu.Dediğim gibi aynı anda aktif ettiğim pinin birini port c diğerini port d ye koyunca direk olarak sorunsuz bir şekilde sürdüm.İnanki anladımsa arap olayım derlerya  :)  işte öyle.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

z

Pes etme hemen. Pine led bağlama voltmetre ile pinde 1 mi yoksa 0 mı var ona bak.

Bu durum forumda bilinmez olarak kalmasın.

Belki 1K ile yüklenen çıkışa 1 yazıldığında, aynı pin okunmaya kalktığında 1 kabul edilecek voltaj değeri üretemeyecek kadar yüklenmiş oluyordur.

1K yerine 10K bağlamayı dene bir de. Yada dediğim gibi hiç direnç bağlama ve voltmetre ile pindeki duruma bak.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

F.T

Z hocam pinde 1 ve 2 volt aralığında bir değişen voltaj var ve pinler boşta olamsına rağmen.aynı porta bağlı olan bu röle çıkışları aktif olunca bu durum oluşuyor.tabi port boş olmasına rağmen durum yine aynı.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

z

1 ve 2v lojik 1 olarak algılanamaz herhalde. Kataloğa bakmak lazım. Dolayısı ile sorun yaşaman normal.

1K beyz direnci çok düşük. 10K pek çok transistörü doyuma sokmaya yeter. Sokamıyorsan daha yüksek hfe li transistör kullan.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com