C Diline Tam Hakim Olma.

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

Mr.Java

Arkadaşlar merhaba.
Konunun algoritması  :D

Bu konuyu açmamın sebebi hem yoğun iş temposundan biraz sıyrılarak arkadaşlar arası yapılan muhabbet ortamı oluşturmak,hem de gerçekten birey olarak yaşadığımız sıkıntı ve deneyimleri paylaşmaktır amacım.

Ben bu dili öğrenecek arkadaşlara hem kendi yol haritamı hemde varmak istediğim noktayı anlatmak istiyorum.

Ben mikrokontroller ile tanışmadan önce normal şartlar altında programlamada PLC programı yazıyor.Haberleşme protokolleri ve hız kontrol uygulamaları yapıyordum.PLC kontrollerde hem görsel programlaması,hemde arıza tespiti kolay olduğundan her zaman tercih sebebim oluyordu.Fakat her uygulamada PLC kullanamıyorduk.Fiyatı belli,maliyeti belliydi.

Ben hem kendimi geliştirmek hemde ileride profosyonel programlamaya geçmek için c diline başlamıştım.

C dili için izlediğim yollar;

-Önce dil hakkında bilgilerin toplanması
-Kaynak başvurusu
Kendi kütüphaneme eklediğim kitaplar(#include diyip başlıyorum :) ) ;

Fahri Bey'in efsanevi kitabı. "Algoritma Geliştirme ve Programlamaya Giriş"
G.Murat Taşbaşı "İleri C Programlama"
Altaş yayıncılık"MikroC ve 18F4550"
CCS C ile Pic programlama
Fxdev.org Hi-tech C
ve en şu dile başlamamın tek amacı MSP430 E-book

Bunları yaptık tabiki şimdi programlayıcı lazımdı.İşyerinde SUPERPRO U3000 olması beni çok sevindirmişti.Bu kısmı atlayıp direk PIC için Deney seti oluşturmak idi.Onuda kendim çizip fabrikaya gönderdikten sonra artık şuan gelmesini bekliyorum.Şu kartın gelişmişi olacaktır kendileri :)


Kitap bitiminden sonra İleri c kitabı ile C'de temel komutlar tanımlamalar diye basitten zora doğru ilerlemeye başladım.Her komut ile ilgili bolca örnekler çözerekten komut yazmaya elimi alıştırırken,hemde her komutun işlevini en iyi bir şekilde anlıyordum.En Son pointerler konusunda kitabı bıraktım artık sabırsızlanmıştım ve PIC ile ilgili programlamaya başlamıştım.Başlıyacaktım fakat hangisi olacaktı ?

CCS kitabı aldım fakat ileride 32bit'e kadar nasip olursa beni yarı yolda bırakacak bir dil idi.

MikroC kitabı kesmelerden sonra iyice saçmalamış sonradan C# eğitimine doğru ilerleyen ve klasik "Help menüsünü türkçeye çevrilmiş !" zihniyetinde bir kitap olmuştu.

En son ANSI C diline girişe başlamıştım ve Hi-Tech Dünyasına adım atmıştım.
Hi-tech gerçekten türkçe sıkıntısı olan bir dil olduğundan öğrenmede zorluk yaşadım.Her komutta bilen birilerini ariyordum.Bilende tam hakim değildi dile.bu nedenle çok zorluk çektim.

Hi-Tech beğenerek çalıştığım bir dil idi ve halen o şekilde devam ediyor.

Hi-Tech dilinde RF,diğer kitap uygulamarını hi-tech diliyle yaptıktan sonra PIC dünyasına elveda deyip 16Bit-32bit dünyasına atılmak için can atıyorum...

Deney setim şu şekilde olacaktır..


(Bu arada bu devrenin internette ilgili şematiği var ise link atarsanız sevinirim..)

Bu şekilde hi-tech dilinde ilerlerken içimde hep terettüt hep terettüt acaba yapabilecekmiyim.C çok güçlü bir dil tam hakim olabilecekmiyim diye tereddütlerim var.

Kitap okumayı çok severim.Hergün'de okurum.Sanırım bu özelliğim benim çabuk öğrenmemde etken oluyor.
Kaynak türkçe olduğu vakit kitap kalınlığının bir önemi kalmıyor bende :)

Bu Dilde ben iyiyim diyen bir arkadaşın öğrenme süreci nasıldır,neler izledi çok merak ediyorum..
Özellikle PIC'ten sıyrılıp Atmel,AVR,Texas gibi firmaların mikrokontrolleri ile çalışan kaç kişi var.

Söylenen her söz benim için çok önemlidir.Evet arkadaşlar yorumlarınızı alayım...

Erdem

Ufak bir düzeltme. Hi-Tech C derleyicinin ismi, ASCI C derken de ANSI C demek istediniz sanırım. ANSI C de C'nin ilk standardı olmuş oluyor.

Benim sadece tek bir C kitabım var. Onu da baştan sona kadar henüz okumadım  ;)

Stephen Prata'nın C Primer Plus kitabı.

Bu arada C konusunda ceviz forumları iyidir.

http://forum.ceviz.net/c-c/

justice_for_all

Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

Mr.Java


justice_for_all

Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

Mr.Java

Ben onu araştırırken C dili hakkında yorum yapılmamış malesef.Tam hakimiyet için izlenilen yol nedir ?

Erol YILMAZ

Alıntı yapılan: Fkarizmatik - 31 Ekim 2012, 17:16:06
Ben onu araştırırken C dili hakkında yorum yapılmamış malesef. Tam hakimiyet için izlenilen yol nedir ?

Tam hakimiyetten kasıt nedir ?

Mr.Java

Mevcut Dil yapısına tam hakim olmam için izlemem gereken yollar..
Tam hakim olmadaki kastım C dili ile mikrokontroller işini bitirmek sadece karşılaşılan problemlerde algoritmayi kurup probleme başlamak o kadar

justice_for_all

Türkçe kitaplarda maalesef tam anlamıyla güzel anlatılmıyor.Orjınal dilden okurdan senin için daha iyi olur.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

Erol YILMAZ

Problemi iyice anladıktan sonra,  kullanacağın mcu ya karar verebilirsin.
Mcu'yu netleştirmek için ise Mcu yu sonuna kadar tanıman gerekiyor...

"Misal, basit bir Infrared bilgi aktarımı yapacaksan PWM unitesinden 38 kHz'i almak iyi bir tercih olabilir"

Mcu nun modüllerini bilmiyorsan iş sarpa sarar, olmadık şeyleri yazılımla yapmaya çalışırsın...

Mcu'nun kesme yapısını ve kesme kullanımını da öğrenmen gerekiyor.
Çünkü yaptığın yazılımın mantığını çok fazla etkileyecektir.

C hakkında ise birkaç tane Standart Ansi C kitabı okuyabilirsin. C hep aynı C ona yapacak birşey yok...
Daha sonrasında ise Derleyicinin dökümanlarına göz atmakta fayda var,
Yapmak istediğin şeyler için pratik çözümler sunabiliyorlar bazen...

Erdem

Aslında yazılım ve elektronik konusunda herkesi çeken farklı şeyler var. Bir arkadaşım bu konuda geçenlerde şunları söylemişti. Ben de böyle düşünüyorum.

Alıntı YapDil bir araçtır. Çekicin de sapı, küt tarafı, keskin tarafı, vs. gibi temel özelliklerini öğrenebiliriz ama ne kadar araştırırsak araştıralım bir usta gibi kullanamayız.

Kendini geliştirmek konusunda da:

- İyi kitaplar okumak ve kötü kaynaklardan uzak durmak.

- İyi forumları izlemek. Ortalıkta çok sayıda yalan yanlış bilgi veren kişiler ve forumlar var. Örneğin C++ için comp.lang.c++.moderated gibi esas ustaların takıldıkları ortamları izlemek iyi olur. Her dilin kendi iyi forumu vardır.

- Öğrendiklerini uygulamak.

Mr.Java

Teşekkürler.Kullandığımız MCU'nun donanım yapısına tam hakim olup C dili ile birleştirmek ve daha sonra uygulamak bu işin sırrı sanırım..  :)

Tavsiye E-book,kitap v.s. var mı standart c için okuyup beyendiğiniz.

özellikle örnek RF uygulaması varmıdır acaba Hi-tech'te.Çok merak ediyorum hi-tech'te hangi kütüphaneler kullanılıyor RF iletişim için.

Kazım

#12
Hi-Tech C 'ye geçtiysen ve acelen de yoksa hemen kütüphane aramaya girişmen hata.Hangi RF Modülü kullanacksan ilgili datasheeti , Errata note 'ları ve application note 'ları gibi kaynakları aygıtın sitesinden edin.Atlamadan oku ve kodlarını yaz.Aksi halde buraya kadar izlediğin akılcı mantık bu noktadan sonra iflas eder.Biraz daha sabır göster ve istediğin tam hakimiyete kavuşmaya çalış.Elbette bunun paralelinde yeterli elektronik bilgi seviyesine erişmeye çalışmalısın.

Ayrıca kendini geliştirdikçe sana lazım olacak C 'nin standart kütüphaneleri olacaktır.stdlib - stdio - gibi .. Ama zaten sen öğrenme aşamalrında takılıp araştırdıkça bunlarıda keşf edeceksin.Örneğin ... LCD 'de int  vb değişkenlerini büyük ihtimal yazdırmayacak ve bunun yolunu bu kütüphanelerde bulacaksın gibi .. veya GPS Datalarını Parse işlemleri de örnek gösterilebilir.

serhat1990

Alıntı yapılan: Fkarizmatik - 31 Ekim 2012, 21:50:16
Teşekkürler.Kullandığımız MCU'nun donanım yapısına tam hakim olup C dili ile birleştirmek ve daha sonra uygulamak bu işin sırrı sanırım..  :)

Tavsiye E-book,kitap v.s. var mı standart c için okuyup beyendiğiniz.

özellikle örnek RF uygulaması varmıdır acaba Hi-tech'te.Çok merak ediyorum hi-tech'te hangi kütüphaneler kullanılıyor RF iletişim için.

RF iletişim için sabit bir kütüphane yoktur arayüz olarak spı çalışan modüller var ı2c çalışan var uart olarak çalışan var , rs485 çalışan var . Bu kullanacağın modüle göre değişir  . Ben hi-tech c ' de rf ile ilgili birçok çalışma yaptım . spı ve uart ağırlıklı çalışıyorum . Şunu önerebilirimki olayların mantığını kavramak açısından kütüphaneni kendin yaz bir kere kullanacak olsan bile ;)

İyi Çalışmalar Dilerim . 

Mr.Java

#14
Cevap için teşekkürler.
Örnek basitte olsa şu işin temelini kavratacak bir örnek paylaşabilirmisiniz acaba ?

mesaj birleştirme:: 04 Kasım 2012, 20:38:44

Alıntı yapılan: graski - 03 Kasım 2012, 10:57:28
Hi-Tech C 'ye geçtiysen ve acelen de yoksa hemen kütüphane aramaya girişmen hata.Hangi RF Modülü kullanacksan ilgili datasheeti , Errata note 'ları ve application note 'ları gibi kaynakları aygıtın sitesinden edin.Atlamadan oku ve kodlarını yaz.Aksi halde buraya kadar izlediğin akılcı mantık bu noktadan sonra iflas eder.Biraz daha sabır göster ve istediğin tam hakimiyete kavuşmaya çalış.Elbette bunun paralelinde yeterli elektronik bilgi seviyesine erişmeye çalışmalısın.

Ayrıca kendini geliştirdikçe sana lazım olacak C 'nin standart kütüphaneleri olacaktır.stdlib - stdio - gibi .. Ama zaten sen öğrenme aşamalrında takılıp araştırdıkça bunlarıda keşf edeceksin.Örneğin ... LCD 'de int  vb değişkenlerini büyük ihtimal yazdırmayacak ve bunun yolunu bu kütüphanelerde bulacaksın gibi .. veya GPS Datalarını Parse işlemleri de örnek gösterilebilir.

Cevabınız için çok teşekkürler.Hatalı yaklaştım dil yapısına.Dediğiniz gibi dil yapısını tam kavradıktan ve deney setim geldikten sonra uygulamalı yapacağım.Neticede bu bir süreç.Su nasıl ki 100 derecede kaynıyor.90 derecede bile değil ! 100 oldum mu kaynıyor ise,bizimde birşeyler yapabilmemiz için sanırım acele ile değil yavaş yavaş kararlılıkla 100 dereceyi beklememiz lazım.