avatar_elektro77

picin herhangibir pinini diğerine okutma

Başlatan elektro77, 18 Nisan 2018, 18:43:49

elektro77

#15
bana sadece 3 veya zorluguna istinaden  2 uç yeterli hocam. microfon kablosu ile aynı bu kablo
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Yap o zaman neredeyse her şeyi anlattım.
3 uç için tek tek satırlada yapılır bu iş. İşin mantığında şu var.
PORTB.0 da 1 nolu kablonun sol ucu, PORTB.4 de aynı kablonun sağ ucu bağlı olacak. Yani kablo bu iki pin arasında bağlı olmalı.
PORTB.1 de 2 nolu kablolnun sol ucu, PORTB.5 de aynı kablolnun sağ ucu bağlı olacak.Yani kablo bu iki pin arasında bağlı olmalı.
PORTB.2 de 3 nolu kablolnun sol ucu, PORTB.6 da aynı kablonun sağ ucu bağlı olacak.Yani kablo bu iki pin arasında bağlı olmalı.
PORTB.3 de 4 nolu kablolnun sol ucu, PORTB.7 de aynı kablolnun sağ ucu bağlı olacak.Yani kablo bu iki pin arasında bağlı olmalı.

Kopuk kontrolü için önce PORTB=255 vererek bütün pinleri HIGH (çıkışları) yapıyorsun. Sonra
PORTB.4-7 pinlerine sırası ile LOW verip karşısındaki pin LOW olmuşmu bakıyorsun. LOW ise bir sonraki kabloya geçiyorsun. HIGH ise kopuk ikazını veriyorsun
SOnra Kısa devre kontrolüne geçiyorsun. PORTB=255 verip pinleri HIGH yapıyorsun.
- PORTB.4 pinine LOW vererek PORTB.1- PORTB.2, PORTB.3 den birisi  LOW mu bakıyorsun. Şayet herhangi bir LOW ise kısadevre var diyorsun. Değilse aynı işi diğer pinler içinde yapıyorsun.

Sonunda Çapraz bağlantı kontrolüne geçiyorsun.  Bunun kısa devre kontrolünden farkı şu, Kısa devre kontrolünde Hem kablonun diğer ucu hemde bir başka uç LOW olmalıdır. Çapraz bağlantıda ise Kablolnun diğer ucu HIGH olmalı ama başka bir uç LOW olmalıdır. Çünki kablonun ucu olması gereken yerde değil başka bir pine bağlıdır.
Bunun için önce PORTB=255 yap
- PORTB.4 pinine LOW ver ve PORTB.0 pinine bak. Şayet HIGH ise çapraz bağlantı var demektir. Hemen bir sonraki pine bak LOW ise oraya bağlıdır. Değilse bir sonraki pine bak orası LOW ise oraya bağlıdır. Bu şekilde 3 pinide kontrol et.
- Pin HIGH değilde LOW ise sağlamdır. Bir sonraki pini al. Aynı kontrolleri onunla yap.
İşin aslı ve temeli bu şekilde.
Bu konuda daha fazla yardımcı olamayacağım artık.

Ete

elektro77

kafam çok aşırı karıştı ama Allah razı olsun çok teşekkür ederim. Yapmaya çalışacağım.
peki ilk verdiğiniz yazılımdaki for next döngülerine ne oldu onuda anlamadım.
Yine döngü ile mi yapacağım tüm bu anlattıklarınızı onuda anlamadım.
Allak bullak uhsfnvjkl<zeuf<hn<zş    OFF. ÖZÜRDİLERİM.
NİYE KAFAM ÇALIŞMIYOKİ.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Döngü işini kolaylaştırır. Bir sürü koda yazmaktan kurtulursun.
Bir yandan sana cevap yazarken bir yandan da meraktan bu sistemiçalıştırmaya uğraşıyorum.
Bir defa kablolarda çapraz bağlantı var ise önden kopuk hatası veriyor. Çünki kablonun karşılığı başka yere bağlı ve bu aslında önce bir kopuk ihbarı oluyor.
Ardından kısadevre kontrolü yapmak lazım. Her bir kontrol arasında geçişi is bir tuşla yapmak (tuşa basılarak) gerekiyor aksi halde çıkan hatalar uçup gidiyor. PORTA.4 pinide tuş bağlamak için en ideal pin oluyor.

Ben yapıp çalıştırdım 4 kablo kontrol sistemi ama bunu sana vermeyeceğim. Biraz çalış uğraş. Bedava iş yok. Öğrnemen gerekenleri öğrenmeden iş yapmaya kalkışmanın cezasıdır bu.

Ete

elektro77

ben daha lcd yi çalıştıramadım. verdiğiniz örnekte lcd nin rw bacağı hangi pine bağlı belli değil.
onu bulmaya çalışıyorum.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Bir kıyak daha yapayım sana.
Programı ve devre şemasını veriyorum.
Hex dosyasıda veriyorum. Çalıştır. Ekranda ikaz çıkarsa TUS a basıp geçmen gerekiyor.
Kablo sağlamsa bir şeye basmadan ekrana sağlam ikazı çıkıyor zaten.
Biraz reklam koydum. En azından ne olup bittiğini görebilirsin.
Bu devre ile kopuk  ve kısadeve kontrolü yapılabiliyor.
Çapraz bağlantı için istediğin bağlantıyı silip çapraz bağla ve sonucu gör.

Ete

elektro77

ooo hocam sizin yapmama ihtimaliniz yoktu zaten ama ben bu şekilde öğrenem ki
kafayı yerim ben yarına kadar uğraşsam. işi gücü bıraktım bununla uğraşıyorum hocam. patron dövecek az kaldı. reklamınız iyide fikirde benden çıktı ama  :)))
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#22
simulasyon aşırı yavas neden olabilir hocam. çok bekletiyor.
bende ısıs 8 var
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

ben 32 bite geçiyorum hocam. bu 64 beni çıldırtıyor. alışkanlıklardan vazgeçilmiyor.
hevesim kaçmak üzere zaten.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Fikir senden çıktı zannetme daha önce Vestel firmasına kablo yapan bir firmaya 64 kanallı kablo yu bile kontrol eden çok komplike bir sistem yapmıştım hemde 3-4 sene önce.
Öğrenmen için illaki açık programı mı vermem gerek ? hiç sanmıyorum. En azından yapılmışa bakarak bir şeyler yapmaya çalışman gerek. Ben merakımdan yaptım istediğini yoksa bir yerlerde kullanmayacağım.

Ete


elektro77

#25
Hocam özür dilerim ellerinize sağlık. ben uğraşıp yapamadıkça biraz atarlanıyorum hepsi bu. çok özür dilerim.
32 bite geçeyim denemeye devam. Ben asıl işlerim nedeniyle fazla vakit ayıramıyorum o nedenle bir türlü ilerleryemiyor hatta belli bir zaman sonra öğrendiklerimi de unutuyorum. ama biri bana şunu yapabilir miyiz? dediğinde benim kafa ordan gelmiyor artık. düşün düşün düşün. sonra tabiki bu işin duayeni olan ete hocaya müracat. eksik bilgim nedeni ile sizide anlyamayınca  Sonra ben başlıyor atmaya sigortlar.
tekrar tekrar özür dilerim.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

#26
bu arada bir tavsiyede bulunmak istiyorum hocam. sitenizin arama özelliğini biraz geliştirmeli veya değiştirmelisiniz. aranılan şeyi yazdığınızda çok anlaşılır listeler çıkmıyor. örneğin google a benzetebilirsiniz.

ekleme"fikrimi değiştirdim. Doğru kelimeyi yazınca gayet doğru şeyler çıkıyor."
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

elektro77

ve ayrıca sizin reklama ihtiyacınız yok hocam. zaten ünlüsünüz.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

#28
Program görsel anlamda biraz daha güzelleşti.
simulasyonu da biraz daha geliştirip hem kopuk kontrolü , hem kısa devre kontrolü hemde çapraz bağlantı kontrolü yapacak hale getirdim.
Dosyalar ilişiktedir.
Sen nerelerdesin yol alamadın hala sanırım. elirli noktalarda yine yardımcı olmaya çalışırım. Ama genel anlamda bu kadar yardımcı olurum.

Konrollerin yapılmasında bazı noktalara yeniden açıklık getiriyorum.
Kopuk kontrolü yapmak için önce çıkış olarak ayarlanmış pinler HIGH yapılmalıdır. Çünki teker teker bu pinleri LOW yapıp karş ucun LOW olup olmadığına bakıyoruz. İşimiz bitince aynı pini tekrar HIGH yapmalıyız ki karışıklık yaratmasın.
PORTB=%11110000 bu komut ilgili pinleri HIGH yapmaktadır.
Kontrol işinin nasılolacağını anlatmıştım. Bir kez daha veriyorum.
4 adetlik bir döngü kuruyoruz
FOR I=0 to 3 bu döngü komutumuz. Döngüyü giriş pinlerinin bit numaralarına göre kurduk. Terside olabilir. Yani çıkış pinlerinin bit numaralarına görede olabilir.
İlk işimiz, döngü içinde ilk pin bitini LOW yapmak olacaktır. Bunu PORTB.0[I+4]=0 komutu ile yapıyoruz. Çünki LOW yamamız gereken bit 4 nolu bit dir. I nın değeri başlangıçta 0 olduğu için bu komut 4 nolu biti LOW yapacaktır. Biraz gecikme koyuyoruz Pause 10 gibi. Buda Giriş Pininin LOW olması için geçecek süre diyelim. Kopukluk yok ise PORTB.4 ün bağlı olduğu giriş pini olan PORTB.0 pinin LOW olması gerekir. Bunuda IF PORTB.0=0 THEN komutu ile test ediyoruz.  Yada tersini yapıp  IF PORTB.0=1 ise kopuktur deyip altına Kablo Kopuk ikazını verip kopuk olan kablo numarasıda I olacağı için onu veriyoruz ve sonraki işlemlere geçiyoruz.
IF komutunu ENDIF ile kapattıktan sonra, LOW yaptığımız pini tekrar HIGH yapmak için PORTB.0[I+4]=1 komutunu veriyoruz.
Sonrasında NEXT deyip döngüyü kapatyoruz. Bu komut dizisi sana kopuk varmı yokmu varsa hangi pinde olduğunu kolaylıkla gösterecektir.

Kısa devre kontrolü için, Yapmamız gereken iş sırası ile şöyle;
- PORT çıkış pinlerini HIGH yap PORTB=%11110000
- Kablo sayısı kadar döngü Kur
- İlk kablo çıkış pini LOW yap
- Karşısındaki giriş pini LOW ise kablo sağlam ama kısa devre olabilir deyip hemen kısa devre kontrolüne geçiyoruz.
- Bu aşamada ilk kablodan sonraki 3 kablo çıkışlarınında LOW olup olmadığına bakmamız gerekecektir. Bunun için İlk kablo girişi LOW ise hemen FOR w=(I+1) TO 3 şeklinde bir döngü daha kuruyor ve w index değerini kullanarak ilgili bitlerin LOW olup olmadığına bakıyoruz. Nasıl dersen IF PORTB.0[w]=0 Then şeklinde. Burada W I nın bir sonraki index i olduuna göre sana bir sonraki kablonun giriş pinin lojik değerini verecektir. Şayet bu ifade doğru ise kısa devre var demektir. Zira o bitin normalde HIGH olması gerekir. Ama ilk kablo ile ikinci kısa devre ise birinci kablo ikinciyi LOW yapacaktır bu komut da onu görecektir. Bu durumda hemen altına gereken ikazları verirsin. Kısa devre olan kablolar I ile W dir. Bunlarıda ekrana yazabilirsin artık.
Unutmadan söyleyeyim kontrolde sorun yok ise bir sonraki kabloya geçmeden önce (next komutundan önce) Low yapılmış bitin tekrar HIGH yapılması gerekir bunuda PORTB.0[I+4]=1 komutu ile yapmak gerekir. AKsi halde bu pin LOW da kalırsa kısa devre ikazı verir sistem.

Gelelim Çapraz kontrole;
İşe yine Pinleri HIGH yaparak başlıyorsun. portb=%11110000
Ardından yine kablo sayısı kadar dngü kurup ilk kablo çıkış pinini LOW yapıyorsun. Karşı pini HIGH olmalı ki çapraz bağlantı olsun. LOW ise kablo sağlam demektir. HIGH ise bu sefer hemen sonraki kablolar kada bir döngü daha kurup hangi diğer pinin LOW olduğuna bakıyorsun. Birisi LOW ise I ile W çapraz bağlı demektir. Gerekli ikazları veriyorsun.
Bir tuşa bastırıp Başlangıca dönüyorsun.
İşin temeli bu şekilde. Bana birisi bu şekilde anlatmış olsa her programı çok kısa sürede yazarım. Seninde yazman gerekir.

Ete

elektro77

evet hocam ben hala cok fazla yol alamadım. ama denemekten vazgeçmiycem. ben illaki başladığım işi bir şekilde bitiririm. yarım kalmış işim yoktur allaha şükür.
Ellerinize sağlık hocam. biraz sonra inceliycem.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Powered by EzPortal