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. ![]() |
@90alper90 yaptığın hesap BYTE'ları hesaplamak mantığında doğru ama şöyle; 2048 x 14 / 8 dediğin değer yapıyor sadece, yani evet 3.5KB'lık alan var.Fakat komut uzunlukları 1 byte'değil ki![]() Komut uzunlukları 14 bit.Bu yüzden 2048 adet yüklenebiliyor.Eğer 8bit uzunluğunda olsaydı dediğin gibi 3.5KB yükleme yapılabilirdi..Senin kafanın içini çok iyi anlıyorum.Çünkü sen assembly'de yazıyorsun ve bence de şu an en iyisini yapıyorsun.Assembly ve C'ciler böyle byte'a bit'e çok takar kafayı ![]() Sana tavsiyem 18FXXX serisine geçtiğinde kesinlikle C18 ile çalışman.Yada 30XXX serisi ile çalışırsan C30 ile çalışman.Ayrıca donanım bilginide geliştir ve uzman ol ![]() Ben gömülü sistemlerle uğraşanların Proton, BASIC gibi diller ile uğraşmasını doğru bulmuyorum.Ama amaç kolaydan devreler yapmaksa ve amaç KOD yazmak değilse tabi ilgilenilebilir.... @QKlavye dediğin PIC'leri biliyorum fakat çok detaylı bakmadım.Yinede Microchip'in şuan GÖMÜLÜ OS yazılabilecek kapasitede PIC ürettiğini düşünmüyorum.Yinede son ürünlere bakmak lazım. Kolay Gelsin. |
Kod burada:
http://ul.to/fi64xw
yıldızlı çıkarsa u l . to olacak
< Bu mesaj bu kişi tarafından değiştirildi herdem09 -- 21 Nisan 2010; 16:22:27 >
Bu mesaja 1 cevap geldi. Cevapları Gizle