Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Neden PIC C ??

Başlatan mech, 08 Ekim 2007, 00:44:57

mech

Meraba arkadaşlar. Profesyonel projeler için basic yetmez, C gerekiyor deniliyor ve C dilinin zor olduğu söyleniyor.
Ben uzun süredir pic basic proton kullanıyorum. Uzun kodlarda program sapıtıyor ve kodla bir mantıksız bir şekilde halledebiliyorum.
Bu yüzden C öğrenmeye karar verdim ve önce bilgisayarlar için bir C kitabı alıp okudum. Sonra da Hitech pic C kitabı aldım. Gördüğüm kadarıyla PicC o kadar da zor bir dil değil. Programlama mantığı aynı sonuçta. Ama kodlar biraz daha uzuyor sanırım. Basic'deki bazı fonksiyonlar da mevcut değil. Yeni bir dil öğrenmek tabii ki güzel. Ama şu konu hala benim için pek açık değil.

Pic C PicBasicProton'a göre bizi neden profesyonelleştirecek.
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Şarttır

SpeedyX

C zor değil, aslında kolay gerçekten.

Soruya benim cevabımda şu olurdu:
Basic ile görünen kod kısa, üretilen kod uzun;
C ile görünen kod ile üretilen kod yakın boyutlarda.

Bir programlama dilinde nekadar daha ufak parçalara hükmedebiliyorsan okadar ince işler yapabilirsin desem anlaşılır mı acaba. Mesela assembly de komutlar karmaşık gelir ama yazılan program ile herşey tam olarak kontrol edilir, eksik yada fazla olmaz, aynen yazılan iş yapılan iştir.
Diğer compiler gerektiren dillerde (MCU için) ise bazen yazılan ile yapılan aynı değildir. Fazlası (genelde) veya eksiği vardır.
Program yazma süresi kısalır ama kalitede düşer. Kullanılan programlama dili  kolaylaştıkça, sistemede hükmetmek zorlaşır. C de assembly, basic arasında birşey bence.

Sonuç olarak C ile kısa sürede, ona göre optimum kalitede program yazılabilir(herşey programcıya bağlı olarakda çok değişir).

Kötü Türkçe için özür.

mech

Peki HiTech için bütün komutların kütüphaneleri internette mevcut mudur?
CCS'de çoğu hazır. Yani bir SPI yapmak için baya düşünmek gerekecek belki bir kereye mahsus.Dediğiniz doğru aslında teşekkürler. Ben biraz da CCS araştırayım en iyisi.
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Şarttır

findux

ben görüşüm hangi dili daha önceden görülmüş ise, daha yatkın ise, ondan başlamak lazımderim.ben programlama dersinde c++ gördüm.bu yüzden secimim benzeri hi-tech c  oldu baya birde yol kat ettiğimi zannediyorum.ama assembler görmek gerek mikro denetliyicinin içinde neler olup bitiyor,mantığını kavratıyor insana.hem bazen bazı probemler asm de program yazmayı gerektiriyor.
c nin zorluğuna gelince de,c zor değil.başarı ise bence insanın bir sürec belirleme kabiliyetinde bitiyor gerisi hava civa .sen oluştur algoritmanı hangi dili biliyosan otur yaz.tercihin yüksek seviyeli dilller olursa (basic,java v.b)sürat teknesiyle gidersin.asm olursa kayıkla gidersin ama olayları daha bi farklılıkla gözlersin ve müdahele edersin.speedy arkadasın c nin basic ile asm nin arasında , benzetmesinede katılıyorum.


mech arkadışım acaba hangi Hitech pic C kitabından bahsediyorsun.nerden aldın acaba.böyle bir kaynak varsa iiyi olur.şöyle örneği bol..     msj atrsan iyi olur.

Fixxer

Walla hocalar bende basic kullanıyorum ama çok mükemmel şekilde bildiğimde söylenemez sonuç olarak biraz da algoritma çıkartmak insana bağlı olduğu için durup düşünüyorum ha birde basic i çok iyi bilen arkadaşların yapamadıkları şey yok nolcak yani 628 kullanıcağına 876 yada 877 kullansın 2 ytl büyük fark değil sanırım sadece basic in gördüğüm en kötü yanı diğer işlemcilere hükmedemiyor atmel,psoc vs. vs. sonuçta pic de bir yerde amator  ;)  bence çok iyi bildiğin bir dil olsunda çamurdan olsun herşey yapılır diyorum ben.
...............................

bigbey

Alıntı yapılan: "Fixxer"Walla hocalar bende basic kullanıyorum ama çok mükemmel şekilde bildiğimde söylenemez sonuç olarak biraz da algoritma çıkartmak insana bağlı olduğu için durup düşünüyorum ha birde basic i çok iyi bilen arkadaşların yapamadıkları şey yok nolcak yani 628 kullanıcağına 876 yada 877 kullansın 2 ytl büyük fark değil sanırım sadece basic in gördüğüm en kötü yanı diğer işlemcilere hükmedemiyor atmel,psoc vs. vs. sonuçta pic de bir yerde amator  ;)  bence çok iyi bildiğin bir dil olsunda çamurdan olsun herşey yapılır diyorum ben.
Basic in enbüyük sorunu nterrupt kullanırken real time işlem yapmamasıdır.Interrup 'ı maskeleyerek sorgulama esasına göre yaptığı için zaman kaçırması oluşabiliyor.
TA6R

tyildizak

Alıntı yapılan: "bigbey"
Basic in enbüyük sorunu nterrupt kullanırken real time işlem yapmamasıdır.

Hocam, PBP için doğru ama bir istisna olarak MikroBasic'de interrupt, interrupt'tır. Hatta kesmeden önce W, STATUS, FSR, PCLATH'ı otomatik olarak kaydeder, kesmeden dönüşte geri yükler..

mech

infogate'in PIC C adlı bir kitap. Hitech picC lite esas alındığını söylüyor. Eve gidince Kitabın yazarını da yazarım.
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Şarttır

Cetinal

Asıl amaç Ansi-C olmalıdır  

CCS veya MikroC gibi dilleri Ansi-C ye ulaşmak için bi araç olarak kullanabilirsiniz

zaten ansi-c ye geçtiğinizde biraz daha zorluk hissedersiniz...

mesela CCS de  delay_ms(1000);  diye hazır olarak gecikme komutunu yazıp gecersiniz ma Ansi-C de hazır bişey yoktur kendiniz gecikme alt programı kendiniz yazarsınız  ve böyle şeyleri de yapınca biraz daha iş profesyonelliğe doğru akar

ben keil kullanmaya başladım mesela ::::::::

erkan614

ben asm kullnıyorum ve çok seviyorum ama biyer de çoğu kullanıcı takılır asm de bende takıldım ve pbp ye geçtim ve fixxerin sorunu olan hassas zamanlama sorunları ile karşılaştım bu durumu pbp kodların arasına asm kodlarını ekleyerek çözdüm bi de intrrupt ta sorun var gibi ama fazla değil
eğer amacın pic ise asm de herşeye hakim olamn gerekir veya yarısına
pbp nin iyi yanı kolay olması :D
sen c ye bi şekilde başlamışsın c de dewam et çok genel bi dil olduğundan ilerde kulvar değiştirirsen sorun yaşamazsın
bende 1 sene sora falan c ye başlıcam
ama pic de asm olmazsa olmaz pro işler için

wosvol

elinde pic ile ilgili döküman olan varsa upload edebilir mi?

Fixxer

Evet erkan hocam sonuç olarak araya asm girilerek real time sorunuda halloluyor değilmi ?  yabancı sitelerde inceleme yapıyorum adamların yapamadıkları şey yok varsada bana tek sorun asm kadar hızlı olmamasıdır derim okadar  :roll: dediğim gibi profesyonel kullanmıyorum ama dediğim gibi bizim öğrenmemiz gereken ince noktalar var.Ete hocamızın geldiği seviyeye kadar gelsek ondan sonra prof. mu amatörmü ozaman karar vermeye çalışcam  :lol:

wosvol arkadaşım okadar çok bilgi var ki forumda hangi birisini upload edelim  :roll:
...............................

volkii

bence projenin kapsamına göre dil seçilmeli. örneğin, elimdeki iş için yeterli zamanım varsa ve iş gerçek anlamda profesyonellik gerektiriyorsa assebly kullanırım. ama süre kısıtlıysa direk c, basic derim. asseblynin tek olumsuz yanı farklı marka işlemciler için farklı komutların kullanılması. aslında c'de kendinizi geliştirebilirseniz, pic haricinde diğer işlemcileride programlaya bilirsin.

Cetinal

Alıntı yapılan: "volkii"bence projenin kapsamına göre dil seçilmeli. örneğin, elimdeki iş için yeterli zamanım varsa ve iş gerçek anlamda profesyonellik gerektiriyorsa assebly kullanırım. ama süre kısıtlıysa direk c, basic derim. asseblynin tek olumsuz yanı farklı marka işlemciler için farklı komutların kullanılması. aslında c'de kendinizi geliştirebilirseniz, pic haricinde diğer işlemcileride programlaya bilirsin.

evet C ile devam edildiğinde diğer işlemcilere geçiş kolay oluyor zaten bu programlama olayına nedense hep picle başlanıor bu iyice oturmuş bi olay
yurtdışında da öyle yabancı sitelerden takip ettğim kadarı ile

ama sadece asm veya basic bilerek arm ye geçmek mesela  susuz bi şekilde sahra çölünü geçmeye teşebbüs etmek gibi bişey

(örnek saçma oldu ama idare edin aklıma o geldi o an :D)

erkan06

Selam arkadaşlar ben siteye yeni dahil oldum. Burada geneli PIC üzerine ilgili birçok arkadaşımın olduğunu görmek çok güzel. Ben de konuyla ilgili asm derim temel mantık 1-0 ne de olsa en yakın dil. Sonrasında C ile bu işi götürebiliriz tabii ki. Bu 2 dil yeterli gibime geliyo tabii biraz da yaptığınız yazılımın karmaşıklığı tercihinizi değiştiriyo.. :D
Ne mutlu Türküm diyene!