C Diline Tam Hakim Olma.

Başlatan Mr.Java, 31 Ekim 2012, 15:36:43

Kazım

MCU programlama mantığı, MCU 'nun belli kabiliyetlerini, datasheetinde gösterilen registerleri anlatıldı biçimide set edip, arzu edilen işi yapatırabilmektir.Bunun için kendi izlediğim yol şu;

Önce özellikleri bakımından, çok fazla ileri seviyeli olmayan ama MCU 'nun yapısını ve ilk aşamada öğrenmen yeterli olan özelliklerini içeren PIC16F877 işlemcisini ki tercihe göre değişir hatta 16F890 da olabilir> az pinli olmasını stersen ( yani bordda denemeli yapacaksan pratik olur çünkü VDD-VSS pinleri çifterli değil mesela );; gelelim paragraf başına > MCU 'nun datasheetini fihristine göre ilk sayfadan bitirene kadar modulleri örnekleyerek öğrenmeye çalış ki simulasyon için deney setine bile gerek Proteus yeterli..Datashhete bitirdiğinde işin mantığını kapmış olacak.İleriki projelerinde sana lazım olacak MCU özelliklerini  uygulayabileceksin.

Kodlama - kod optimizasyonu - algoritma  - fonksiyonellik vb. programlama yönetmlerini ise mektepli olmadığımdan anlatmam doğru olmaz.Tecrube yanında teori de şart.yanıltmak istmem o yüzden ben o kısma değinmeyeceğim.

Mr.Java

Evet bende klasik türk mantığı vardır.Görerek kendim bizzat uygulamalıyım ki öyle öğrenirim.16F877a ile Analog dijital,interrupt v.s. tüm işleri yaptıktan sonra MCU'ya sanırım tam hakimiyet söz konusu oluyor.

Teşekkürler yorumunuz için.Kartı basımını bugün yarın bitirirsem foruma koyacağım zaten.Gerçekten iştahlandırıyor :)

eistain_54

Kod optimizasyonu tam olarak nedir?Nasıl tespit ediliyo?Bazı yerlerde görüyorum da sanki asm ye çevirebilme yeteneği gibi konuşuluyo.Böyle bişeymi?Biraz detay verebilir misiniz?
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

Erdem

Efsane bilgisayar bilimci Donald Knuth'un bu konuda bir sözü var:

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.


Yani zamanından önce yapılan eniyileştirme bütün problemlerin kaynağıdır diye çevirebiliriz.

Örneğin gcc derleyicisi -O seçeneği ile iyileştirme yapar. Teorik olarak en iyileştirme seviyesi arttıkça kodun daha hızlı çalışması beklenir. Ancak pratikte durum böyle değildir. Tam tersine örneğin -O3 ile iyileştirme yapılan programlar daha yavaş çalışabilir, hata ayıklama zorlaşır vs.. Kısacası en yaygın ve güvenli en iyileştirme seçeneği -O2'dir.

http://www.redhat.com/magazine/011sep05/features/gcc/

Programcı açısından düşünürsek öncelikle kodun baştan sona tamamlanması gerektiğini düşünüyorum. Eğer programda yavaşlığa neden olan kısımlar varsa sadece o kısımlar elden geçirilerek en iyileştirme yapılabilir.