object file ların kullanımıyla ilgili bir soru.mplink?

Başlatan extremist, 04 Ağustos 2004, 13:41:58

extremist

arkadaşlar elimde çalışan bir lcd programı var.yani tek başına çalışıyor.program burada http://groups.yahoo.com/group/PicProjeUP/files/extremist/lcd1

benim istediğim bu programın içindeki fonksiyonları bundan sonra yazdığım programlarda kullanabilmek.yani bir program yazıcam CALL DISPLAY_INIT diycem gidip lcd programımdan onu çağırıcak.yapmam gerekenleri az çok biliyorum.mplab ta yeni bir project oluşturuyorum,yazdığım programın asm sini,lcd programının asmsini,p16f877.lkr fileını projeye dahil ediyorum.çağırmak istediğim fonksiyonları lcd programımda GLOBAL yazdığım programlardada EXTERN olarak tanıtıyorum.fakat sorunum şurda sanırım CODE,ORG vs. gibi tanımları ne şekilde yapacağımı bilemiyorum yani Section olaylarından pek çakmıyorum bu yüzden programlar doğru dürüst derlenmesine rağmen mplink şöyle  bir hata veriyor

Error - section '.org_0' can not fit the absolute section. Section '.org_0' start=0x00000004, length=0x0000015a
Errors    : 1

bu olayı çözmek için bir kaynak gösterseniz bile yeter ordan okur yaparım,yada sorunu çözmem için direk olarak yardımcı olursanız sevinirim.lcd programımın linkini yukarıda zaten verdim.p16f877 ve proteus kullanıyorum.projem lcd göstergeli digital saat ama ben daha lcd yi yukarıda anlattığım şekilde initialise edemediğim için saat kodlarına geçemedim:) projede mm74c922 klavye entegresi ile 4x3 klavye sürmeyi ,eproma I2C metodu ile veri yazmayı falan düşünüyorum.yukarıda dediğim gibi bunları tek bir ASM file ında değilde hepsini moduler olarak uygulamaya katarsam daha iyi olur diye düşünüyorum.yoksa haksızmıyım   :roll: .hadi ustalar bi el atıverin şu işe :P

şimdiden teşekkürler ;)
10 çeşit insan vardır.Binary sayılardan anlayanlar ve binary sayılardan anlamayanlar.

DumrulBey

Merhaba,

Bahsettiğin arayüzü inceledim. Elbette bu arayüzü kullanman LCD'den daha iyi verim almanı sağlayacaktır. Ancak böyle hazır alt programlar yerine kendi kodlarını kullanmalısın. Çünkü Hitachi uyumlu herhangi bir LCD'ye yarım bayt (nibble: 4 bit) veya bir bayt (byte: 8 bit) veri göndermen çok kolay. Üstelik saat yapacağın için kesme (intterupt) kullanacaksın ve gördüğüm kadarıyla arayüz içerisinde kesme adresi (0x04h) işgal edimiş.

Alt programların için sayfalama (paging) yapacaksan başlangıç adreslerini (origin: ORG) iyi tanımlamalısın. Başka sayfaki alt programı çağırmak için PCLATH'ın 4. ve 3. bitlerini kullanıyorsun. Eğer bu arabirimi kesinlikle kullanmalıyım diyorsan programını 0x1FFFh adresini geçmediğin müddetçe başka sayfalara yerleştirmelisin. İki program da  0x000h adresinden başlayamaz. Muhtemelen derleyicinin verdiği hata bundan kaynaklanıyordur.

Son olarak dediğim gibi kendi alt programlarını oluştur ve kafana takılanları sor. Mutlaka forumdan birimiz cevaplayacaktır. LCD kullanırken aralarda bekleme zamanı dışında dikkat etmen gereken çok önemli bir şey yok. Saat ile ilgili her yerde fazlasıyla kod olduğu için kendine en uygun olanını seçebilirsin. Ama önce adım adım git ve tuş takımından girilen verinin ekranda görünmesini sağla. Sonra kullandığın kristale göre zamanlayıcı (Timer: TMR0) kur ve bir kaç alt program. İşin tamamdır...:)

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

james

org 0x00 ile gösterdiğin alt programın hemen üstüne code yazarsan sorun kalmaz.
yani

org 0x00
goto main

code
main
....
....
ARAMIYORUM , BULUYORUM

extremist

cevapları yeni okuyorum daha önce olayı çözdüm:).dediğiniz gibi CODE deyimi kullandım ve birazda modifiye yaparak sonuca ulaştım tabi enaz 5-6 saatimi aldı.bu işte daha 1 haftalık mazim var.şu acemilik dönemini bi atlatabilsem çok daha iyi olacak ama dertler bitmiyor.Dumrul bey sizede detaylı açıklamalarınızdan dolayı teşekkür ederim.Timer0 kullan demişsiniz ama hem hocamın bana söylediği hem microchipin sitesinde ki örnek programda okuduğum şey real-time clock için Timer1 in uygun olduğu.Şuan bununla uğraşıyorum Timer1 initialize oluyor ama çalışmıyor.T1OSO ve T1OSI bacaklarına 32.768Khz lik bi oscillator bağlıyorum.Timer1 ide gerektiği gibi konfigure ediyorum ama ne Proteus'ta nede Mpsimde Timer1 çalışmıyor.programın kodları ve proteus design file ı burada

http://groups.yahoo.com/group/PicProjeUP/files/extremist/mywatch

C:/  dizinin altına atarsanız sorunsuz çalışması lazım.

bu program yine microchip tarafından yazılmış bi program yani güvenilir sadece ben buttonlarla ilgili kısımları klavye kullanmak istediğim için sildim.acaba dosyayı inceleyip Timer1 konusunda nerede hata yaptığımı söyleyebilirmisiniz.Datasheetteki Timer1 kısmını okudum herşey normal gözüküyor ama olmuyor işte  :(

zaman ayıranlara şimdiden çok teşekkürler.umarım bende kısa zamanda burada insanlara yardım edecek hale gelirim  :idea:

saygılar
10 çeşit insan vardır.Binary sayılardan anlayanlar ve binary sayılardan anlamayanlar.

DumrulBey

Tekrar Merhaba,

Sorunu hallettiğine sevindim. Özellikle saatlerce uğraşıp kendin çözmen bizim söylediklerimizden bin kat daha değerli. Aynı azimle devam edersen sen bu işi halledersin, sana güveniyoruz! Bu arada tanışalım, hangi okul ve şehirdesin?

Melih kardeşim doğru, TMR1 daha iyidir. Sonuçta 16 bit ve PIC uyurken bile çalışıyor. Ben oradan lafın gelişi söyledim ama sen yineden adım adım gitme önerimi unutma. Örneğin TMR0 ile başla, nasıl kesme oluşuyormuş, zamanlayıcı hesaplamaları nasıl yapılıyormuş bir tecrübe et; sonra arzu edersen mikrodenetleyicinin tüm özelliklerini kullanırsın.

Kodlarını inceleyemedim. Malum gece geç saatleri! Gündüz uygun bir vakit inceleyeceğim. Bir hatan varsa ben veya başka arkadaş zaten söyler. Ayrıca paylaşmak istediğin birden fazla dosyan varsa bunları paketle. Örneğin RAR veya ZIP uzantıları halinde olabilir. Neyseki Opera kullanıyorum da hemen bağlantılar bölümüne girip bir kaç tıklama ile dosyaları çektim. Başka biri yardımcı programı olmadığı halde IE kullanıyorsa işi zor. Üstelik sen de tek tek yüklemen zor olmuştur herhalde.

Foruma katılım sağlaman için illaki konunda tecrübe sahip olman şart değil. Örneğin biri bir şey arıyordur sen daha çabuk bulabilir veya bilgiye sahip olabilirsin. Hemen adresini verir o arkadaşımıza yardımcı olmuş olursun.

Sevgiler, saygılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

extremist

merhaba Dumrul bey ve diğer tüm forum müdavimleri.ben Eskişehirdenim, Osmangazi Üniversitesinin Elektrik-Elektronik müh bölümünü şuanda üzerinde çalıştığım picprojeyi verince bitirmiş olucam :D

öncelikle gönderdiğim dosyaları ziplemediğim için özür diliyorum.forumda biyerde YahooBin adlı programdan bahsediliyordu bi çeşit dosya manageri yahoo groupslar için linki alıp indirdim onu kullanıyorum.şaşkınlık bu işte sanki biranherkes aynı programı kullanıyormuş gibi geldi.bundan sonra ziplerim.tekrar kusura bakmayın

Dumrul bey adım adım öğren acele etme demişsiniz çok doğru.Ama projeyi haftaya teslim etmem gerektiği için fazla zamanımın kalmadığını düşünüyorum.gerçi bugüne kadar epey sıkı çalıştım,1haftadır başından kalkmıyorum nerdeyse, okuldaki hocamda bu konuda bilgili bi insan oda epey yol gösterdi,bu yüzden çok huzursuz da değilim,geliştiğimi hissediyorum,şuanda timer1 sorununu halledersem kalan problemlerim şunlar olucak
*tarih modülü ekleme
*I2C yöntemiyle eproma 1,2,3,4,5,6,7,8,9,10 seslerini yazdırma ve saat başlarında pice bunu söyletme.konuşan saat yani:P (bu bölümde baya başınızı ağrıtabilirim)
*4x3 klavye ekleme ve tüm kontrolleri buradan yapma(bunuda forumda araştırırken bulduğum bir programı inceleyerek hallettim sanırım yarın biraz daha uğraşırsam olucak heralde)

belki bunlar çok temel şeyler ama yeni başladığım için yinede bi panik havası var bende şuanda:)

sizin gibi paylaşmayı ve yardım etmeyi seven insanların bulunduğu bi ortamı keşfetmiş olmam ayrı bi şans benim için ;)

gece gece üşenmeyip vakit ayırdığınız için sonsuz teşekkürler DumrulBey

saygılar...
10 çeşit insan vardır.Binary sayılardan anlayanlar ve binary sayılardan anlamayanlar.

DumrulBey

Alıntı yapılan: "extremist"merhaba Dumrul bey ve diğer tüm forum müdavimleri.ben Eskişehirdenim, Osmangazi Üniversitesinin Elektrik-Elektronik müh bölümünü şuanda üzerinde çalıştığım picprojeyi verince bitirmiş olucam :D
Hadi hayırlısı, bu sene çok arkadaşımız okulu bitirdi. Yeni mühendisler piyasaya giriyor. Bir de iş buldunuzmu, tamamdır. Tabii askerlik sorun olduğu için biran önce yapmakta fayda var. Ben de henüz gitmedim. Herhalde gelecek sene askerim.

Alıntı yapılan: "extremist"öncelikle gönderdiğim dosyaları ziplemediğim için özür diliyorum.forumda biyerde YahooBin adlı programdan bahsediliyordu bi çeşit dosya manageri yahoo groupslar için linki alıp indirdim onu kullanıyorum.şaşkınlık bu işte sanki biranherkes aynı programı kullanıyormuş gibi geldi.bundan sonra ziplerim.tekrar kusura bakmayın
Estağfirullah, özür ne demek. Sadece ufak bir hatırlatma yapmak istedim. Bahsettiğin programı biliyorum ama hiç kullanma fırsatım olmadı. Pek ihtiyaç da duymadım. Acaba sürekli güncelleniyor mu? Yoksa bu programa Yahoo müsaade ediyor mu?

Alıntı yapılan: "extremist"Dumrul bey adım adım öğren acele etme demişsiniz çok doğru.Ama projeyi haftaya teslim etmem gerektiği için fazla zamanımın kalmadığını düşünüyorum.gerçi bugüne kadar epey sıkı çalıştım,1haftadır başından kalkmıyorum nerdeyse, okuldaki hocamda bu konuda bilgili bi insan oda epey yol gösterdi,bu yüzden çok huzursuz da değilim,geliştiğimi hissediyorum.
Fazla vakit kalmaması üzücü. Yahu hala okullar kapanmadı mı? Çok son zamana kalmışsın! Forum senelerdir faaliyette, biliyorsun. Önceden gelseydin sıkışmazdık. Ama çoğunu hallettim diyorsan ortaya bir şeyler çıkacaktır. Fakat sorunlarda gölge gibi takip ediyor...:)

Biraz önce Yıldırm Ak'ın Yahoo'daki alanı (tıkla) dikkatimi çekti. Orada ses ve zamanlayıcı konusunda güzel benzetimli (DSN - simulation) uygulamalar var. Hatta tuş takımıyla ilgili bir uygulama da gördüm. Ama bu uygulama analog, yani tuşları tek hat üzerinden algılıyor. Bir ara incele, mutlaka projende işine yarayacak bir şeyler bulacaksın.

Alıntı yapılan: "extremist"şuanda timer1 sorununu halledersem kalan problemlerim şunlar olucak
*tarih modülü ekleme
*I2C yöntemiyle eproma 1,2,3,4,5,6,7,8,9,10 seslerini yazdırma ve saat başlarında pice bunu söyletme.konuşan saat yani:P (bu bölümde baya başınızı ağrıtabilirim)
*4x3 klavye ekleme ve tüm kontrolleri buradan yapma(bunuda forumda araştırırken bulduğum bir programı inceleyerek hallettim sanırım yarın biraz daha uğraşırsam olucak heralde)
- Zamanlayıcıdaki problemi tam anlayamadım? Herhalde birim saniyede kesme oluşturmak istiyorsun. Yoksa başka bir şey mi?

- Tarih ile ilgili hazır fonksiyonlar var, internette ararsan mutlaka bulursun. Anahtar sözcükler "calendar PIC assembly" olabilir. Aslında hazır DS serisi tümdevreler var. Tarih ve saat ile ilgili kısımları o yapıyor. Pil takıldığı için unutmuyor. Ama ben hiç kullanmadım. Kullanan arkadaşlar yardımcı olabilir.

- Kullanacağın klavye tümdevresi (74C922) pahalıdır. Yaklaşık olarak 7-8 milyon TL. Üstelik piyasada az bulunur. Elimde var diyorsan mikrodenetleyiciyi meşgul etmemesi açısından kullan derim. Kullanımı çok basittir. Nerede takılıyorsun?

Ses konusunda http://www.gvz.com.tr/Demo/TTS.html adresini bir incele. Orada istediğin harf, kelime veya cümleyi farklı tonlarda, üstelik PIC için uygun boyutlarda elde edebilirsin. Son bir kaç aydır ben buradan faydalanıyorum.

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

extremist

tekrar merhaba DumrulBey.epeydir cevap yazamadım kusura bakmayın,şu işide halledeyim şu işide halledeyim derken günler geçiverdi.

şu anda klavye,tarih,timer vs sorunlarımın hepsini hallettim.bitek 24H/12H mode geçişlerinde saçmalıyor bazen,onuda sallıycam,olmıyversin :twisted:

asıl dert şimdi başlıyor,bu saati saat başlarında konuşturtmam gerek,saat 1,saat 2 vs gibi. hoca biraz fikir verdi ama çok yolun başındayım,şimdi yeni bi konu başlığı açıp olayı oraya yazıyorum.bu başlık altındaki yardımlarınızdan dolayı teşekkür ederim.
diğer konu başlığınada beklerim :D

saygılar
10 çeşit insan vardır.Binary sayılardan anlayanlar ve binary sayılardan anlamayanlar.