PİC C komutlarını incelerken, bir örnekte PORTB=4 oldu yani PORTB=00000100 oldu.

ASM de kütüphane mi varmış? Lise 2 den beri asmde pic prog yazarım,, yeni öğreniyorum valla.. ) Kütüphane dosyasında düzenleme yapıp kullandığın komutların üstüne org ile adres girsen? Bi faydası olur mu?

YARARMAN da mantıklı dedi gerçi.. Ben de workspace kullanmadım şimdiye kadar.. Kütüphanesiz sadece asm dosyasıya idare ettim..
 

GüvTek, kütüphane olayı biraz farklı bir şekilde bulunmaktadır.
Büyük projelerde bu şekilde çalışılır.
Tek dosya ile projeyi gittikçe zora sokarsın.
Dışarıdan asm (.inc) dosyası include edebilirsin.
Tanımladığın dosya içinde ise asm işlem parçacıkları (macro) ya da fonskiyonlar yazabilirsin.
Herkesin aşağıdaki konuyu iyice baştan sona incelemesini tavsiye ederim...

How to Divide Big .asm file?
 
Son düzenleme:

Heaa.. Tamam şu tanımlamaların olduğu inc uzantılı dosya.. O dosyaya macro eklemek aklıma gelmedi hiç.. Valla hocam benim projeler pek büyük sayılmaz,, en fazla 6bin-7bin satır,, tek dosyada hallediyorum hepsini.. Ben hep normak asm dosyasına ekledim tüm makroları, fonksiyonları.. Eski yazdığım programlarımda kullandığım sabit fonksiyonları topluyorum direk asmye.. Tabi tüm programlarım çöplük gibi.. Program bitince de tek tek siliyorum gereksizleri..

Bu arada deneme amaçlı inc dosyasına sabit kullandığım eeprom fonksiyonlarımı ekleyip macro çerçevesine aldım.. Bunu da programın sonuna ekledim.. Program derlendi ve program memoryde inc dosyasından çağırttığım macro programa eklenmiş.. İyi oldu bak bu sistem..

Peki hocam bunlarla ilgili hazır kütüphane var mıdır? FAT dosya sistemidir, matematiksel işlemlerdir vs..
 

Yazdığın program, değil 6000'i, 1000 satırı geçmesi bile karmaşıklığa yol açar.
Ki zaten o kadar asm yazacak seviyeye gelmişsen, bir çok fonksiyonlarını bir çok projede kullanıyorsun demektir.
O yüzden kütüphane mantığı ile gidersen çok daha güzel olur.

Bu düzeneğe geçmene sevindim...

SD kartlar ile çalışmak istiyorsan, sana güzel bir örnek:
SD Memory Card Interface
Ancak benim önerimi soracak olursan;
SD kart projeleri için PIC18'den aşağısını kullanma.
Ayrıca kodlama dili olarak da C'yi kullan.
Eğer illa da ASM'den vazgeçmem diyorsan, zaten C içinde de ASM kullanabilirsin.
Tabii gerektiği yerlerde...
 

Evet hocam,, bendeki mmclerden bir tanesi ile 128 bayt okuma/yazmayı kabul ediyordu denemiştim 877de, bi diğer kart ise 512 bayttan aşağısı kurtarmaz diyodu.. 16F lerde de o kadar ram yok,, mmcye yazarken veri hatalı tekrar gönder dese apışıp kalacak yazılım.. Şu an 18F leri kullanıyorum ama mmc yi 18F lerde denemek nasip olmadı.. Fat dosya sistemi ile ilgili pek çok döküman inceledim,, ingilizcem kıt,, yeterince anlamadığımdan yapamadım.. C dilinde örnekler ve kütüphaneler vardı bi yerde.. Onları inceleyecektim hatta.. Ama karışık geldi işime de yaramazdı,, uğraşmak istemedim pek..

C dilinde yazacak kadar bilgim yok bu arada.. Visual C++ ile uğraştım zamanında, windows ortamına geçemeyince,, bu konudaki örnekleri de karışık gelince bıraktım.. Bir U dönüşü yapmak lazım yazın..
 

Hiç kimse C'yi anasının karnında öğrenmedi...
Ki ASM, C'den daha düşük bir seviyeli dil olduğu için C, ASM'den daha kolay.
Sen ASM'yi öğrenip güzel projeler ortaya çıkarabiliyorsan, C'yi hayli hayli öğrenirsin.
Şiddetle C'ye geçmeni tavsiye ederim...

Bilgisayar ortamına gelecek olursak;
Visual C++, daha çok sisteme yönelik yazılımlar için kullanılıyor.
ActiveX ve sürücü dll dosyaları da geliştirebilirsin.
Anlayacağın sen ağır olanına dalış yapmışsın.
Sana tavsiyem;
Bilgisayar ortamındaki arayüzlerini Visual Studio'da, C#.NET kullanarak geliştir.
Çok güzel bir dil...
 
C# kitabı var bende ama,, prog olarak VS 6 var içinde C# yok,, VS.NET de yok şu an bende.. PC deki basit işleri genelde Visual Basic 6 ile yapıyorum.. 1-2 kere de hyperterminalden faydalandım..

Neyse zamanım olunca C# yi öğrensem iyi olacak.. Zaten yeni piclerde de asm dili tarih olmuş sanırım.. 5-6 yıl uğraşsam ezberleyemem komutları o kadar karışık göründü gözüme..
 

Komut ezberlemek hiçbir zaman önemli bir şey değildir!
Önemli olan algoritmayı kurabilmektir, analitik düşenebilmektir.
Bir algoritma kurduğunda, bu algoritma bütün diller için geçerli olur.
ASM'den, C#'a kadar...
Komutlar kitaptan, internetten bakılarak yazılabilir, hiç önemi yok.
Yeterki sen, çalışacak olan kararlı bir yapıyı kurabilesin...
 
Haklısınız hocam, ama asmde tüm komutları bilmeden de yeterince verimli bir algoritma oluşturulamaz bence,, mesela BZ,BC komutları ve muadili komutlar.. Bu arada istisnalar da var algoritma konusunda.. Derleyici kod optimizasyonu için extended komutları kullanıyorsa, ASM de yaptığınızı C de yapamayabilirsiniz, daha doğrusu pointer vs ile dolaylı olarak yapmanız gerekir sanırım..

24Flerin komut sistemi biraz karışık görünmüştü bana.. IOR AND vs işlemlerinin değişkenlerinde 5 bit, kimilerinde 10 bit kimilerinde 8 bit literal vs.. Ama yeni farkettim sistem fena değişmiş bunlarda..
http://ww1.microchip.com/downloads/en/DeviceDoc/39881D.pdf

Merhaba
C# 'ın Ücretsiz olan express sürümünü buradan indirebilirsiniz.Kolay gelsin. Visual C# 2010 Express | Microsoft Visual Studio

Çok teşekkürler..
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…