Arkadaşlar pic de tuhaf bir durum var. aşağıdaki devreyi yaptım. baya bir uğraştım ve picproje sitesindeki arkadaşların yardımlarıyla sonunda lcd ekrana görüntü geldi. Şimdi çok entarasan bir durum var. elektronik karta elimi değdirdiğimde çalışıyor. elimi çekersem donuyor. elimi değdirdiğimde lcd yazılarda biraz tuhaflık oluyor fakat elimi devreden çektiğimde lcd ekranda kareler oluşuyor donuyor. bu neden olabilir. devrenin resimini ekliyorum
Mod Notu: Konuya, anlam içeren başlıklar veriniz. Başlık editlendi.
(http://img167.yukle.tc/images/2589Clipboard.JPG)
+ - uçlarına kondansatör takmamışsınız.
hangi değerlerde kondanstör takmalıyım. ve bağlantı şekli nasıl olmalı
(http://img176.yukle.tc/images/2413c.jpg) (http://www.yukle.tc)
birde bu tür devrelerde kristal ve işlemci şaseye mümkün olduğunca yakın olmalı siz şaseyi ince bir yol ile uzatıp işlemciye ve kristale götürmüşsünüz ordaki ince ve uzun yol bir bobin gibi davranarak kristalin sağlıklı osilasyon yapmasına engel olur. sizin devrede bunu engellemek için pic + - bacaklarına kondansatör takmanız gerekiyor.
teşekkür ederim "elektronik"
sanırım başka bir sorun dediğiniz bağlantıları yaptım ama yine aynı. bazı yerlere dokunduğumda görüntü geliyor. ama saçma sapan yazı karakterleri oluşuyor. sonra numaratörden sayı girmemi istiyor tam gireceğim sırada dokunur dokunmaz resete geçiyor yada donuyor.
devreyi kendi halinde dokunmadan çalıştırdığım zaman ise lcd ekranda sadece karaler var. yazı falan yok ve devre işlevini gerçekleştirmiyor.
temassızlık varmı diye tek tek lehim tazelemesi yaptım. avometre ölçümünü yaptım. ve devreye stabil 5v akım geliyor. anlamadım bir türlü :( başka nerelerden kaynaklanan birşey olabilirki
nerelere dokunduğunda ? kristal uçlarınamı ? yada mclr ucunamı ?
kristale taktığın 22pf kondansatörler doğrumu iyice kontrol et olmadı kristali değiştir. birde 1 nolu mclr pinini direk +5 volta bağlayıp dene.
rasgele dokunduğum zaman ama kristale dokunduğumda değil. mesela akşam biraz daha farklıydı elimi yaklaştrınca bile etkileniyordu deymesebile. şimdi çarşıya kristal alıp takıp deniyeceğim
LCD kontrast trimpotunu 20k olarak değiştirin,şemada 10k olarak gözüküyor.Birde besleme kısmına 100 Mf ve Pic in besleme pinlerinin yakınına 100nf kondansatör ekleyin.
Alıntı yapılan: "cobra07"LCD kontrast trimpotunu 20k olarak değiştirin,şemada 10k olarak gözüküyor.Birde besleme kısmına 100 Mf ve Pic in besleme pinlerinin yakınına 100nf kondansatör ekleyin.
10k niçin olmaz ?
PIC in kullanmadığın inputlarını ya output olarak ata yada bir yere bağla veya işlem yaparken bu pinlerin durumlarının programın çalışmasına hiçbir etkisinin olmadığına emin ol gerekirse maskeleme yap.
dediğiniz devre elamanlarını yani kondanstörleri ekledim. kristal değiştirdim. hatta transistörleride değiştirdim. pici yeniden programladım. boştaki bütün uçları nötr hatta sıfırladım. sonuç eksi uca yani nötre dokunduğumda lcd de yazı geçiyor. numaratörden sayı girmemi sitiyor girdiğimde resete geçiyor. elim nötür hatta değdiği sürece olanlar bunlar. elimi nötre değdirmezsem. hiç bir hareket yok sadece ekranda karaler var
programdan kaynaklanıyor olabilirmi acaba
@ DEVICE pic16F628 'iþlemci 16F628
@ DEVICE pic16F628, WDT_OFF 'Watch Dog timer kapalý
@ DEVICE pic16F628, PWRT_ON 'Power on timer açýk
@ DEVICE pic16F628, PROTECT_OFF 'Kod Protek kapalý
@ DEVICE pic16F628, MCLR_ON 'MCLR pini kullanýlýyor.
@ DEVICE pic16F628, XT_OSC 'Dahili osilatör kullanýlacak
@ DEVICE pic16F628, LVP_OFF
@ DEVICE pic16F628, BOD_OFF
buradakı ayarlara bakmanı tavsiye ederim
yukardaki basıc kodları alıntıdır
Bir ara bendede böyle bir durum olmuştu ama tam hatırlayamadım nasıl çözdüğümü
hocam şöyle bir iki fikir geliyor aklıma.
1-Lehimlerden parlak olmayanları tekrar yapın soğuk lehim olabilir.
2-Kristale bağlı 22pf'lık kondansatörleri sökerek yap bir ihtimal sanki ben böyle çözmüştüm.
3-Devreni tam doğru bir gerilim kaynağı ile besle belki beslemeden kaynaklanabilir.
NOT: Eğer sorunu çözerseniz burada bizimle paylaşırsanız herkes için faydalı olur.
Kolay gelsin
sorunu çözersem tabiki paylaşırım hocam. Ama inanın çözebilmiş değilim. sagamen arkadaş kodlara bir bak demiş ama ben kod yazılımından hiç anlamıyorum. yani baksam bile ne olduğunu anlayabilecek kadar bilgili değilim. Ben bunu ihtiyacım doğrultusunda internetten buldum. fakat astarı yüzünü geçti. hem maddi olarak hemde boşa geçen zaman gibi oldu. 2 haftadır bununla uğraşıyorum. 3 tane lcd 3 tane pic entegre sizlere ömür. en son lcd ye görüntü geldi diye şükredip sevinirken birde başıma bu sıkıntı çıkınca hepten moralim bozuldu. Kod yazılımından anlayan arkadaşlar varsa hex dosyasını buraya ekliyorum . kodlara bakarak yardımcı olabilirlerse sevinirim. Bu arada kullanmış olduğum işlemci 16F877A
http://rapidshare.com/files/115599548/Trafo_Sarim_say__305_c__305_.rar.html
buda yaptığım baskı devresi
(http://img176.yukle.tc/images/1169Resim_006.jpg)
kristal tipi ne seçilmiş ise o tip kristal kullanmalısın.rc seçip hs kullanırsan böyle tuhaflık olabiliyor.
ne seçti isen onu kullan...
valla dostum kristalin üzerinde yazan k4.00 metal küçük bişey hs mi bilmiyorumki. tx osilatör seçimi yaptım programlarken. nereden anlıyacaz kiristalin çeşidini
Yukarıda söylediklerimi yaptınızmı? Eğer yukarıdaki dediklerimi yapmanıza rağmen sorun çözülmediyse sorun aşağıda açıladığım gibidir.
Sizdeki hata program hatası değil bu programla alakası yok. Elinizi dokundurduğunuzda lcd'de yazı geliyorsa muhakkak lcd'nin bacaklarında biri şaseye(-) tam temas etmiyordur. Elinizi değdirdiğinizde vücudunuz şase görevi görüyor.
Devrenizi incelediğimde kusura bakmayın ama lehimlerin kalitesiz yapıldığını görüyorum özellikle top şeklinde olan lehimlerinizin soğuk lehim olma ihtimali yüksek. Özellikle sağ alt taraftaki lehimlerden biri yan yola değiyor bunu bilinçlimi yaptınız bilmiyorum.
Ben olsam o lehimleri lehim pompası ile alır tekrardan lehimlerdim.
Size şunu söyleyeyim sorun lehimlerin düzgün olmamasından kaynaklanıyor.
Özellikle lcd'nin şaseye giden pinlerine dikkat edin.
Kolay gelsin.
hocam kusura bakılacak bişey yok. burada sorunu çözmek için olumsuz olan konuları açmamız gerekiyor zaten. çözümünüzle alakalı olarak. yan yola değen bir kısım yok orada görülen resimde değiyormuş gibi görünüyor. lehimleri tazeledim dediğiniz gibi. top gibi görüntüler onun için kaynaklandı. evet dediğiniz gibi lehimlerde kalitesizlik var. yarın dediğinizi yapacam bütün lehimleri pompayla çekip tekrar lehim yapacağım. yarın sonucu yazarım tekrardan. teşekkürler
Dostum aynı sorun bende de var. GTP Pic programlayıcıda PIC 18f2550 nin olduğu kısma elimi yaklaştırdığımda ya da tamamen dokundurduğumda LED yanıyor ama elimi çektiğimde ya da uzaklaştırdığımda led sönüyor. Daha sonra anladım ki PIC 0.01 mm kadar soketin üstüne kaymış. Yani tam oturmuyormuş. Sen en iyisi 16f877 sök ve tekrar tam oturacak şekilde yerine tak.
Hadi kolay gelsin..
Soketleri tek tek kontrol ettim.
Avometre ile devre konrtolu yaptım.
Lehimleri pompayla alarak tekrardan lehimledim.
Devre elamanlarını direnç,transistör,potansiyometre, kristal kondanstör,led,ve diyot olmak üzere hepsini yeniden değiştirdim.
Lcd ve tuş takımına giden çoklu kabloyu kısa devre olmamasına rağmen yeniledim per kaçağı olur belki diye.
16f877A tx , hs,rc, olarak denemelerle yeniden progladım.
güm kaynağı sorunu varmı diye başka bir adaptöre tam doğrultma ekleyerek devreye tekrar enerji verdim.
SONUÇ: - (NÖTR) uca elimi değdirdiğim zaman devre çalışıyor. elimi çekersem sürekli reset atıyor. Kafayı yemek üzereyim. Bu nasıl bir iştir böyle ya. pic bana bağımlılıkmı yaptı anlamadımki
O zaman tek çare kartı yenileyeceksin. Yeni devreyi bastıktan sonra bir güzel zımparala yüzünü. Ayrıca lehim ve diğer işlemler bittikten sonra selülozik tiner ile kartın lehim yaptığın kısmını bir güzel sil. O zaman çalışmaması için pek sorun kalacağını sanmıyorum. Olmadı kristali değiştireceksin.
resimde kırmızı çizgiyle gösterdiğim noktalara kalın (en az 1 mm) kablo ile köprü at eğer yine olmazsa yazılımla ilgili bir sorundur daha öncede bir arkadaşın söylediği gibi pinlerden biri veya birkaçı giriş olarak ayarlanmış olabilir iyi kontrol et boştaki pinleri çıkış olarak ayarla.
birde şöyle bişey dene. yaklaşık 10 nf değerinde bir kondansatörün bir ucunu şaseye diğer ucunuda pic'in pinlerine tek tek lehimle ve devreyi çalıştır eğer pic'in pinlerinden parazit aldığı için bu sorun oluyorsa kondansatör buna engel olacaktır.
son olarak alt sağ tarafta gösterdiğim yere kondansatör ekle.
(http://img171.yukle.tc/images/31172413c.jpg) (http://www.yukle.tc)
arkadaşlar bişey soracam. bu devrede gereksinim olarak 16f877 istenmiş. ben 16f877a serisini kullanıyorum bununla alakalı birşey olabilirmi sizce?. bu devreye çok masraf ettim. şimdi birde gereksiz ise eğer onu almak istemiyorum
ben bu devredeki sorunu çözemedim arkadaşlar. bütün önerdiklerinizi yaptım. benim gibi başka arkadaşlar bu devreyi yapacaklarsa boşuna masraf etmesinler. görünen kısımlarda hiç bir problem yok. görünmeyen kısımda bir problem var. görünmeyen kısım sadece program kaldı. ondanda ben anlamadığım için. onuda göremedim.
son yazdıklarımı uyguladınmı?
istersen programı buraya ekle belki programdandır.
evet elektronik hepsini uyguladım ama olmadı. programı rapide attım sorun varmı diye bakarsanız sevinirim http://rapidshare.com/files/115766440/Trafo_Sarim_say__305_c__305_.rar.html
MCLR pinini 10K üzerinden değilde birde direkt olarak +5V'ye bağla. Nadiren olsada bu bile sorun çıkarabiliyor...
Low voltage program
Flash program write
Bu konfigürasyon bitleri Enabled durumunda
Disabled yapıp denedinmi
kurcalarken pic yandı yine bu 4.pic oldu.
Zonguldak"da pic ben de moral kalmadı.
Yarın son birtane daha alıp deneyeceğim bu dediğinizi
nereden yapmam gerekiyor bu ayarları
Alıntı yapılan: "creemstorge"Dostum aynı sorun bende de var. GTP Pic programlayıcıda PIC 18f2550 nin olduğu kısma elimi yaklaştırdığımda ya da tamamen dokundurduğumda LED yanıyor ama elimi çektiğimde ya da uzaklaştırdığımda led sönüyor. Daha sonra anladım ki PIC 0.01 mm kadar soketin üstüne kaymış. Yani tam oturmuyormuş. Sen en iyisi 16f877 sök ve tekrar tam oturacak şekilde yerine tak.
Hadi kolay gelsin..
Kesinlikle katılıyorum muhakkak bir temassızlık var. Hatta picin bacağının biri sokete takılırken bükülmüş bile olabilir.
hocam picin takıldığı soketi iyce kontrol ettim ölçüm yaptım hiç bir sorun yok. içim rahat etmedi picin soketini iptal ettim. direk pici lehimledim. sorun yine aynı. şimdi diyeceksinizki o aynı bu aynı inanın daha buraya yazmaya yüzümde kalmadı. ama olmuyor
DODO KARDEŞ PİC İ TERS Mİ TAKIYORSUN YOKSA.....
Alıntı yapılan: "dodo4132"kurcalarken pic yandı yine bu 4.pic oldu.
Zonguldak"da pic ben de moral kalmadı.
Yarın son birtane daha alıp deneyeceğim bu dediğinizi
nereden yapmam gerekiyor bu ayarları
Normal bir devrede pic kurcalamayla yanmaz. PCB'de problem olduğu konusunda ısrarcıyım.
çeşitli topraklama denemeleri yaparken yandı hocam. 4 tanesini rahmetli ettik. pici yanlış takmıyorum çentikli tarafa özellikle dikkat ediyorum. artık aklıma gelen tek şey şu acaba ben transistörlerimi ters takıyorum. bundan olabilirmi. ama transistörleri şekildekine göre takıyorum. şekilin yanlış olma ihtimali varmı ? transistörler ters takılmış olsa hiç çalışmazdı sanırım öylemi arkadaşlar. yoksa yanlışmı düşünüyorum
sen söyleyince farkettim transistörleri ters takmışsın. pin numaraları itibariyle doğru ama transistör şekli olarak ters görünüyor tabi pcb çizimindeki şekilde taktıysan eğer yanlış. çizimde kullandığın transistör pnp transistöre ait. ama bu sorun ondan kaynaklanmaz.
birde şöyle bişey yap. tuş takımını takmadan dene. tuş takımına giden uçları pic'in bulunduğu kart kısmından ayır.
----------------------------------------------------------------------------
BC237
(http://img174.yukle.tc/images/548bc237.JPG) (http://www.yukle.tc)
Hangi programlayıcı yazılımını kullandığını bilmiyorum
Konfigürasyon ayar penceresi olmalı.Hex dosyasını seçtikten sonra
Bu pencereden değerleri değiştir
ıcprog kullanıyorum programlarken. tx osilatörünü seçiyorum.
tuş takımınıda ayırdım devreden ama çalışmadı yine eksi uca elimi dokunduğumda çalışıyor . bu nasıl bir iş
mutlu son :D
arkadaşlar herkeze yardımlarından dolayı teşekkürler arkadaşlar. bu işi artık parayla yaptırmaya karar vermiştim. forumda özel pic devre yapan yerler varmı diye dolaşırken bu http://www.elektronika.gen.tr/ bu adrese fiyat sordum. fakat bu kadar yaptıktan sonra boşuna para verme dedi. kendisi yardımcı oldu sağolsun sorun şuymuş arkadaşlar.
pici programlarken sigorta ayarlarını hiç değiştirmiyordum fakat pwrte enabled olacakmış diğerleri disablet yani kutusu işaretsiz olmalıymış msn den yardımcı oldu hallettim. adresi burada vermemin sebebi. gerçekten bu yollarla para kazanan birinin bu kadar dürüst davranması ve buna rağmen yardımcı olması beni şaşırttı. sizede cevap verme gereği duyup bana vakit ayırdığınız için teşekkür ederim arkadaşlar. sağolun
Alıntı yapılan: "dodo4132"mutlu son :D
arkadaşlar herkeze yardımlarından dolayı teşekkürler arkadaşlar. bu işi artık parayla yaptırmaya karar vermiştim. forumda özel pic devre yapan yerler varmı diye dolaşırken bu http://www.elektronika.gen.tr/ bu adrese fiyat sordum. fakat bu kadar yaptıktan sonra boşuna para verme dedi. kendisi yardımcı oldu sağolsun sorun şuymuş arkadaşlar.
pici programlarken sigorta ayarlarını hiç değiştirmiyordum fakat pwrte enabled olacakmış diğerleri disablet yani kutusu işaretsiz olmalıymış msn den yardımcı oldu hallettim. adresi burada vermemin sebebi. gerçekten bu yollarla para kazanan birinin bu kadar dürüst davranması ve buna rağmen yardımcı olması beni şaşırttı. sizede cevap verme gereği duyup bana vakit ayırdığınız için teşekkür ederim arkadaşlar. sağolun
Oh şükür. Sende kurtuldun bizde. Bağımlılık yaptı konu başlığı acaba çalıştırdınızmı diye meraktan sürekli başlığa bakıyorum.
Bu arada yeni birşey öğrenmiş olduk. ;) 8O
@dodo4132
picproje ailesi olarak, ailecek senden daha çok sevindik :)
azmin zaferi, demekki pes etmemek gerekiyormuş.
:( arkadaşlar şimdiki sorunum dahada büyük. hex dosyası demoymuş. program bir kaç sipirden sonra demoya geçiyor. reklam yapıyor. herşey boşa gitti. keşke bunu yapanlar demo olduğunu yazmış olsalardı
Alıntı yapılan: "dodo4132":( arkadaşlar şimdiki sorunum dahada büyük. hex dosyası demoymuş. program bir kaç sipirden sonra demoya geçiyor. reklam yapıyor. herşey boşa gitti. keşke bunu yapanlar demo olduğunu yazmış olsalardı
ben söylemiştim sana bunu ,hatırla
birkaç sarımdan sonra sanki başa dönüyor ,tuhaf çalışıyor ,kontrol et demiştim.
arkadaşlar bu hex dosyası editlenemezmi yada yeniden yazılabilirmi çok zor bir işmi bu kod yazmak. bunu yazan kişiler keşke bunun bir demo olduğunu belirtselerdi. insanları bu kadar gereksiz uğraştırmaya hakları varmıki
hex dosyasına birşey yapamazsın
Alıntı yapılan: "dodo4132"arkadaşlar bu hex dosyası editlenemezmi yada yeniden yazılabilirmi çok zor bir işmi bu kod yazmak. bunu yazan kişiler keşke bunun bir demo olduğunu belirtselerdi. insanları bu kadar gereksiz uğraştırmaya hakları varmıki
Biraz bekleyiniz bir süprizim var....
sabaha kadar bekle desen inan beklerim 8O
Alıntı yapılan: "dodo4132"sabaha kadar bekle desen inan beklerim 8O
Dodo boşver o devreyi ben size daha basit ve ucuzunu tasarladım. Devre kesinlikle çalışmaktadır.
Aşağıdaki linkte
http://picproje.org/index.php/topic,20527kolay gelsin.
çok teşekkürler ayhani yarın bu devreyi yapacam. bu gün gerekli olan malzemeleri alayım. yarın baskı devresini dökerim. ben bu devrede 16f877a entegremi kullanabileceğim değilmi?
dodo bak gene aynı hatayı yapıyorsun ,
her gördüğün devrenin hemen baskısını çıkarma ,
1 tane breadboard al ,pahalı değil ,onun üzerinde devreni dene ,çalıştır ,sorun yoksa baskı devreyi incele ,gene sorun görmüyorsan o zaman baskı devreyi bas .
yani bence..
Alıntı yapılan: "dodo4132"çok teşekkürler ayhani yarın bu devreyi yapacam. bu gün gerekli olan malzemeleri alayım. yarın baskı devresini dökerim. ben bu devrede 16f877a entegremi kullanabileceğim değilmi?
Bu devrede 877 kullanamazsın pic16f628 ile yapmalısın. 16f628 4 ytl civarı pahalı değil yani.
Alıntı yapılan: "maxiboost"hex dosyasına birşey yapamazsın
Hex dosyasını "disassemble" edip gerekli değişikliklerden sonra "assemble" edemez miyiz? Proteus simülasyonda "debug" yaparken hangi "insturction" işletiliyor, PC nerde görebiliyoruz. Bu sayede "disassemble" etmeden dahi demo bölümüne dallanan dallanma komutunu tesbit edip bir hex editör kullanarak demo bölümüne değil istediğimiz diğer bir bölgeye dallandırabiliriz diye düşünmüştüm.
:roll:
Alıntı yapılan: "ferdem"Alıntı yapılan: "maxiboost"hex dosyasına birşey yapamazsın
Hex dosyasını "disassemble" edip gerekli değişikliklerden sonra "assemble" edemez miyiz? Proteus simülasyonda "debug" yaparken hangi "insturction" işletiliyor, PC nerde görebiliyoruz. Bu sayede "disassemble" etmeden dahi demo bölümüne dallanan dallanma komutunu tesbit edip bir hex editör kullanarak demo bölümüne değil istediğimiz diğer bir bölgeye dallandırabiliriz diye düşünmüştüm.
o kadar uğraşmaya değmezki ,programı baştan yazmak daha kolay heralde ,üstelik olmazda heralde öyle hex dosyasından birşey yapabilmek .
Alıntı yapılan: "ayhani"Alıntı yapılan: "dodo4132"sabaha kadar bekle desen inan beklerim 8O
Dodo boşver o devreyi ben size daha basit ve ucuzunu tasarladım. Devre kesinlikle çalışmaktadır.
Aşağıdaki linkte
http://picproje.org/index.php/topic,20527
kolay gelsin.
Bu link silinmiş sanırım
Alıntı yapılan: "creemstorge"Alıntı yapılan: "ayhani"Alıntı yapılan: "dodo4132"sabaha kadar bekle desen inan beklerim 8O
Dodo boşver o devreyi ben size daha basit ve ucuzunu tasarladım. Devre kesinlikle çalışmaktadır.
Aşağıdaki linkte
http://picproje.org/index.php/topic,20527
kolay gelsin.
Bu link silinmiş sanırım
https://www.picproje.org/main/modules.php?name=Forums&file=viewtopic&p=137813&highlight=#137813
Alıntı yapılan: "maxiboost"Alıntı yapılan: "ferdem"Alıntı yapılan: "maxiboost"hex dosyasına birşey yapamazsın
Hex dosyasını "disassemble" edip gerekli değişikliklerden sonra "assemble" edemez miyiz? Proteus simülasyonda "debug" yaparken hangi "insturction" işletiliyor, PC nerde görebiliyoruz. Bu sayede "disassemble" etmeden dahi demo bölümüne dallanan dallanma komutunu tesbit edip bir hex editör kullanarak demo bölümüne değil istediğimiz diğer bir bölgeye dallandırabiliriz diye düşünmüştüm.
o kadar uğraşmaya değmezki ,programı baştan yazmak daha kolay heralde ,üstelik olmazda heralde öyle hex dosyasından birşey yapabilmek .
Sonuçta .hex dosyasında .asm dosyasındaki "instruction" ların "opcode", "operand"ları ve bazı diğer bilgiler bulunuyor. Yapılamayacak iş değil ama benim gibi PIC assembly konusunda tecrübesiz olanları biraz uğraştırır(bilene kısa bir iş). Bana kalırsa yapılması gereken değişiklik ilgili dallanma komutlarını tesbit edip programı doğru adreslere dallandırmak. İlk fırsatta uğraşacağım.
Alıntı yapılan: "ferdem"Alıntı yapılan: "maxiboost"Alıntı yapılan: "ferdem"Alıntı yapılan: "maxiboost"hex dosyasına birşey yapamazsın
Hex dosyasını "disassemble" edip gerekli değişikliklerden sonra "assemble" edemez miyiz? Proteus simülasyonda "debug" yaparken hangi "insturction" işletiliyor, PC nerde görebiliyoruz. Bu sayede "disassemble" etmeden dahi demo bölümüne dallanan dallanma komutunu tesbit edip bir hex editör kullanarak demo bölümüne değil istediğimiz diğer bir bölgeye dallandırabiliriz diye düşünmüştüm.
o kadar uğraşmaya değmezki ,programı baştan yazmak daha kolay heralde ,üstelik olmazda heralde öyle hex dosyasından birşey yapabilmek .
Sonuçta .hex dosyasında .asm dosyasındaki "instruction" ların "opcode", "operand"ları ve bazı diğer bilgiler bulunuyor. Yapılamayacak iş değil ama benim gibi PIC assembly konusunda tecrübesiz olanları biraz uğraştırır(bilene kısa bir iş). Bana kalırsa yapılması gereken değişiklik ilgili dallanma komutlarını tesbit edip programı doğru adreslere dallandırmak. İlk fırsatta uğraşacağım.
valla kardeş yapabilirsen helal olsun derim sana. gerçi böle bişeyin yapıldığını daha önceden hiç duymadım ama yaparsanda ilk yapan sen olacaksın sanırım. inşallah hayallerin gerçek olur
sorun çözüldü arkadaşlar. ayhani isimli arkadaşın yapmış olduğu yeni devre çalışmaktadır.
ayrıca diğer forumdan abuzettin20 isimli arkadaş hex dosyasının demosunu kaldırmıştır test ettim çalışıyor. yeni hex dosyasını aşağıda veriyorum. yararlanmak isteyen arkadaşlara duyurulur.
abuzettin20 nick"li arkadaştan alıntıdır.
http://rapidshare.com/files/117707662/Sar__305_m2.zip.html
Alıntı yapılan: "ferdem"Alıntı yapılan: "maxiboost"Alıntı yapılan: "ferdem"Alıntı yapılan: "maxiboost"hex dosyasına birşey yapamazsın
Hex dosyasını "disassemble" edip gerekli değişikliklerden sonra "assemble" edemez miyiz? Proteus simülasyonda "debug" yaparken hangi "insturction" işletiliyor, PC nerde görebiliyoruz. Bu sayede "disassemble" etmeden dahi demo bölümüne dallanan dallanma komutunu tespit edip bir hex editör kullanarak demo bölümüne değil istediğimiz diğer bir bölgeye dallandırabiliriz diye düşünmüştüm.
o kadar uğraşmaya değmezki ,programı baştan yazmak daha kolay heralde ,üstelik olmazda heralde öyle hex dosyasından birşey yapabilmek .
Sonuçta .hex dosyasında .asm dosyasındaki "instruction" ların "opcode", "operand"ları ve bazı diğer bilgiler bulunuyor. Yapılamayacak iş değil ama benim gibi PIC assembly konusunda tecrübesiz olanları biraz uğraştırır(bilene kısa bir iş). Bana kalırsa yapılması gereken değişiklik ilgili dallanma komutlarını tesbit edip programı doğru adreslere dallandırmak. İlk fırsatta uğraşacağım.
dodo kardeş problemi başka bir yoldan çözmüş. Ben çok basit bir örnek üzerinde hex dosyasının nasıl düzenlenebileceğini göstermek istiyorum.
led flasher.asm nin mpasm tarafından üretilmiş hex çıktısı:
:02000000502886
:1000A00000308316850083120130013A8500A100DB
:0600B000FF202108552885
:0201FE00FF30D0
:0C020000A0009900A00B990B0229080037
:00000001FF
Burda(yukarda) önceden yazılıp derlenmiş asm kodlarının "opcode", "operand" ları ve satır sonlarında "checksum" bilgileri var. "Opcode" ve "operand"ların kaç bitlik olacağı mikrodenetleyici türüne(intel,microchip vs.) ve yazılan koda göre değişebilir. Hex dosya formatı da farklı olabilir. Hangi kodun hangi "opcode" oluşturduğunu bilmek için "opcode"ların da bulunduğu komut tablosuna bakmak gerekir, hex dosyasını çözebilmek için sadece tablo değil "PIC Assembly" konusunda tecrübe(bende olmayan) sahibi olmak da gerekir.
Varsayalım ki değiştirmek istediğimiz durum tek ledin değil de iki ledin "flash"(yan sön) yapması. İlgili "mnemonic"leri proteus "debug"ından yakalayabiliriz veya iyi bir ihtimal bu hex dosyasını "disassembly" edip asm kodlarına ulaşabiliriz.
Değiştirmek istediğimiz satırları
0054 3001 MOVLW 0x01
0055 3A01 XORLW 0x01
olarak tespit ettik. Görüyoruz ki veya komut tablosundan buluyoruz ki ilgili "mnemonic"lerin "opcode"ları 30 ve 3A "operand"lar 01 ve 01.
Bizim hex dosyamızda kırmızı ile gösterdiğimiz yere denk geliyor.
:02000000502886
:1000A0000030831685008312
0130013A8500A100DB
:0600B000FF202108552885
:0201FE00FF30D0
:0C020000A0009900A00B990B0229080037
:00000001FF
01 ve 01 "operand"larını 03 ve 03 değişikliğini yapıp satır donundaki "checksum" bilgisini 4 azaltıyoruz(3-1=2, 2*2=4).
Sonuçta:
:02000000502886
:1000A0000030831685008312
033003A8500A100
D7:0600B000FF202108552885
:0201FE00FF30D0
:0C020000A0009900A00B990B0229080037
:00000001FF
hex dosyasını elde ediyoruz. Amacımıza göre düzenlenmiş bir hex dosyası elde ettik. Rahatlıkla kullanabiliriz.
Bu örneği verdim çünkü hex dosyasına müdahale edemeyiz diye yapabileceklerimize erkenden bir sınır koymayalım demek istedim. İyi çalışmalar dilerim.
Düzenleme: imla.
Alıntı Yaphex dosyasını elde ediyoruz. Amacımıza göre düzenlenmiş bir hex dosyası elde ettik. Rahatlıkla kullanabiliriz.
Bu örneği verdim çünkü hex dosyasına müdahale edemeyiz diye yapabileceklerimize erkenden bir sınır koymayalım demek istedim. İyi çalışmalar dilerim.
Disassembler'dan asm elde ettikten sonra, gerekli değişiklikleri yapıp tekrar derlemek daha sağlıklı olmaz mı?
Gürkan
Muhakkak daha sağlıklı ancak disassembly ardından oluşacak .asm dosyası elle yazılmış asm ler gibi değil; etiket isimlerini çözmek zor, tüm yorumlar kaldırıldığı için kodu baştan sona okumak zorundasınız vs. Bir de düzgün çalıştığına emin olduğunuz "disassembler" varsa bize de öneriniz. İyi çalışmalar.
Hocam ben de http://www.hagi-online.org/ (http://www.hagi-online.org/) sitesinde verilen PIC-Disassembler v1.6'ı kullanıyorum; işimi fazlası ile görüyor.
Ancak tabii ki daha iyileri vardır muhakkak, ama bana yettiği için arayış içerisine girmedim şahsen
Aslında düzgün çalıştığını test ettim desem yalan olur; sadece hex'i verilen programların mantığını gözden geçirmek için göz atmıştım.
Gürkan