Arkadaşlar biraz hort olacak ana en alakalı konu bu. Şimdi araştırma yaparken 16f628 için yazılmış bir programa denk geldim. Hex dosyasının boyutu 10kb. Bunun 628'e sığma ihtimali yok diye biliyorum. Halbuki bu program gerçekleştirilmiş. Nerede yanlış düşünüyorum acaba? Kod burada: http://ul.to/fi64xw yıldızlı çıkarsa u l . to olacak |
hex dosya boyutunun 10 k olması 2 lık 628 e yazılmasına engel değildir. hex dosya içerisinde picin program hafızsına yazılacak olandan çok daha fazla bilgi (adres vs)oluyor. örnek olarak yazdığım bir programda 830 program word ve 30 değişken kullanmışım program hazfızasının(2K nın) % 40.53 ü değişkenlere ilişkin hafızanın ise %13 ünü kullanmışım . hex dosya boyutu ise 5 K.... |
Teşekkürler yanıt için. |
Programlama sırasında eeproma veri yazımı konusunda, PBP DE EPROM demişsiniz yıllar önce. Ben PBP de DATA komutunu kullanıyorum. İstediğim değeri istediğim adrese programlama sırasında yerleştiriyorum. Örnek: DATA @$1, 20 'Eepromun 1 nolu adresine 20 değerini yaz. Şimdi proton ile çalışıyorum. Protonda da EDATA demişsiniz. Ancak bu komutla adres belirtilemiyor. Doğrudan 0. adresten yazmaya başlıyor. Programlama sırasında PROTON dilinde eeproma nasıl bilgi yazabilirim? Yardım lütfen. |
Çalışma esnasında eeproma ulaşacaksınız interruptları kapatmalısınız. Initial değerleri programınızın başında define edebilirsiniz. Zaten arkadaşlar yukarıda açıklamışlar. Programlamada ileri seviyelere gitmek istiyorsanız asm ya da hi-tech c öneririm. Zaten bu microchip bu compalier ı satın aldı. işlemciye en iyi hakimiyeti kurmanızı sağlar. |
Çalışma esnasında eeproma bilgi yazma veya okumada bir problem yaşamıyorum. Zaten programda kesme gerekmediğinden kullanmıyorum. Eeproma ilk çalışma sırasında kullanılmak üzere yaklaşık 120 değer yazılması gerekiyor. Ben bu değerleri denetleyiciye program yüklerken yazmak istiyorum. Yoksa ilk çalışmada tüm değerleri lcd ekrandan tek tek girmem gerekiyor. İstediğim bu değerleri programlama sırasında girebilmek. Dediğim gibi PBP de DATA komutuyla rahatlıkla yükleniyordu. Proton basic de yapamıyorum. Bahsettiğiniz gibi ASM veya C dilleri hakimiyet açısından daha iyidir. Alışkanlık işte. Dil değiştirmek zor. PBP den protona bile geçerken zorlanıyorum. ![]() Saygılar. |
Merhaba Elbetteki tercih size ait ama bu işi ciddi manada yapacam ve ileri gidecem diyorsanız tafsiyem üreticilerin kendi destekledikleri dilleri kullanmak. Bunun dışındakiler 3. Firmalar tarafından geliştirilir ve bazen kullandığın islemcinin header dosyasını bulamadığın durumlarda olacak. 10 yılı aşkın mesleki tecrübem bunu söylüyor. Başarılar. |
Çok haklısınız. Ancak şu anki şartlarda ihtiyacım olan komutu bulmam gerekiyor. İlginize teşekkürler. Çalışmalarınızda başarılar. |
protonbasic de ewrite ile yapılıyor. bizzat kendim kullanıyorum kullanımı EWrite adres, [bilgi] |
hatta kendi kullandığım örnek GIE = 0 'tüm kesmeleri pasif hale getirdik EWrite 5, [ SONY_COMMAND ] 'belleğe yazdık DelayMS 10 'gecikme olmazssa olmazımız GIE = 1 ' kesmeler tekrar aktif hale getirildi |
EWrite komutunu kullandığımızda, program çalışmaya başladığında, ve bu komutun bulunduğu satıra her geldiğinde bu komut çalışacaktır. Yanılıyor muyum? EWrite komutunu zaten program içinde kullanıyorum. Oysa ben sadece işlemciye program yüklerken eeproma bilgiler kaydedilsin ve işi bitsin istiyorum. Daha sonra program çalışırken etkili olmasın. Var mıdır böyle bir komut acaba? |
O zaman şöyle yaparsınız . Program ilk çalıştığında bilgileri kaybedersin. Sonra bir ilk çalıştırma durum bölümü olulturursunuz. (epromuna) mesela Default 0 dır . Çalıştığında bilgileri epromuna kaydeder ve bu durumu belirten bölgenin değerini 1 yaparsınız. Epromuna bilgileri kaydetmedrn önce bunu kontrol ederek ona göre işlem yaparsınız olur biter. |
Hee bir de edata komutu vardı. Ama tam olarak nasıl iş yapıyor onu bilmiyorum |
Özel bir bölüm oluşturup bir kereliğine kayıt yapmak değişik bir fikir olmuş. Ama çalışır tabi ki. edata komutu bu işi yapıyor ama, verileri ilk adresten başlayarak yerleştiriyor. Adres veremiyorsunuz. Sadece dataları arka arkaya yazmak gerekiyor. Ben de şu anda bunu kullanıyorum. Dataları öyle bir sırada yerleştirdim ki, hepsi kendi yerine gidiyor. ![]() PBP daki data komutunun gözünü seveyim. Program yüklerken istediğin datayı istediğin adrese yerleştiriyordu. Bir daha da programa etkisi olmuyordu. Kalın sağlıcakla. İlginize teşekkürler. ![]() |
O bilgiler zaten assembly edildikten sonra oraya basılıyor, kodun harcadığı program word ve değişken bytelarını oraya yazar. dolayısıyla doğru olmalı..
< Bu mesaj bu kişi tarafından değiştirildi Hazar -- 31 Aralık 2007; 18:28:27 >
Bu mesaja 1 cevap geldi. Cevapları Gizle