PIC C Başlangıç için Örnekler?

Başlatan hamzax, 27 Ocak 2011, 12:59:24

fatihkuzucu

Alıntı Yap
ileriye dönük düşünüyorsaniz hitechten kullanin. ilk başta zorlanabilisiniz. içinde hazir kütüphanesi yoktur.
ccsc de güzel bir tercihtir. içindebol örneği vardir. kütüphaneleride geniştir. yalniz ansii c standartlarina pek uymaz. bu derlyici ile profesyonel projeleryapanlar biliyorum. küçümsenecek bir derleyici değildir. sadece ilerde başka bir mikrodenetleyiciye geçeceğiniz zaman zorlanirsiniz.

Bilerek yapılan yanlı yorumlar. CCS Anci C destekler. Hitechde yazılabilecek her kod CCSde de yazılır. Üzerinde birde ccsin hazır lib desteği vardır. Başka derleyiciye niye geçilecek ? Farklı firmanın  mcusu kullanacaksa, farklı derleyici gerekebilir evet. Ancak sanılıyorki al kodu buradan taşı öteki derleyiciye yapıştır derle geç :) . Bu işler bu kadar basit değil. LPC2368-LPC1768 pin to pin uyumlu nxp 32 bit mcu ve ikiside keil ile programlanabiliyor. 2368 de yazılmış bir keil kodunu 1768 e taşıyın bakalım  taşıyabilecekmisiniz ?
Kendi kendinize her şeyi yazma konusunda sabit fikirli olabilirsiniz. Ancak bunu CCS dede yapabilirsiniz. Yoksa o yaramaz, bu daha iyi gibi fikirleriniz nesnel olmaktan çıkıyor.
Exp.Kits http://tinyurl.com/3qhs8pm   Küçük adamların, küçük fikirleri... Büyük adamların, büyük hayalleri...

hamzax

Alıntı yapılan: eseneren - 27 Ocak 2011, 20:53:11
C de degısken tanımlıyorsun ya o degıskenler mcu ıcınde bır bolgede duruyor.
Kullanabıldıgımız bırde mcu nun kendı kullandıgı kayıt alanları var.
Misal 877A ıcın 06h 8 bitlik adresine "00000011" yuklersen PORTB den 0ve 1. bıtler 1 dıgerlerı 0 olarak cıkıs alırsın.
misal 86h adresinide kendı kullanıyor 8bitlik bir alan bu alana "00001111"
degerını atarsan  PORTB nın  0,1,2,3 bıtlerı ınput 4,5,6,7. bıtlerı cıkıs olarak ayarlanmıs olur.

06h adresıne portb
86h adresıne trısb  adı verılmıs

#define PORTB 0x06
#define TRISB 0x86

yazarsan portb yazınca derleyıcı tanır yada bunları tek tek soylemek yerıne hazır olan kutuphaneyı eklersın.

Lakin MCU ogrenmeden baslamıssın gıbı datasheet olmadan donanımı ogrenmeden en kral yazılım ıle bıle yaptıgın ıslerı gozden gecırmen gerekecek.
Ingılızcen yok ıse 877A ıle ılgılı turkce dokuman da var. Eger cat pat ıngılızcen varsa hıc turkce kaynaklara basvurmadan ıngılızce dokuman oku teknık ıngılızce o kadar zor degıl.
Fırat Deveci kıtabını dikkatli okursan sindire sindire aynı anda ikisi hakkında da fikrin olur 
(yazılım donanım) eksiklerini de datasheet hem bu forumdan bulabilirsin.

Ama tris ne vs dersen acıklarım da cok yavas ılerlersın.

Saygılar
O zaman ilk olarak Fatih Deveci'nin kitabına çalışmam lazım.Bunu bitirdiğim zaman sanırım küçük bir proje için gerekli bilgiye sahip olurum.
---------
Konuda birden derleyici tartışması başladı yalnız ilk mesajımda dediğim gibi derleyici olarak SDCC'yi kullanacağım.

Yardımcı olan arkadaşlara da teşekkür ederim.

Saygılar

hamzax

Alıntı yapılan: FxDev - 28 Ocak 2011, 15:37:35
Alıntı yapılan: hamzax - 28 Ocak 2011, 14:09:30
O zaman ilk olarak Fatih Deveci'nin kitabına çalışmam lazım.Bunu bitirdiğim zaman sanırım küçük bir proje için gerekli bilgiye sahip olurum.

;D  ;D
;D ;D Fırat Deveci aklımda niyeyse fatih olarak kalmış.Neyse :)
Alıntı Yap
SDCC interrupt support
o To write an ISR in C, create a function similar to the following format:
void isr_foo() interrupt 1

{}
" This format tells SDCC to generate an interrupt vector (at offset
0x0B from the --code-loc address) that calls isr_foo in response to
interrupt 1.
" It also tells SDCC to generate a RETI instruction instead of a RET
instruction to return from a call to isr_foo().
Biri üst kısmı açıklayabilir mi acaba sanırım SDCC'de interrupt işlemi Hi-tech'ten biraz daha farklı.

eseneren

Evet arkadasım sen o kıtapla ve datasheetle basla sıkıntı olursa yardımcı olmak ısterım.
"Kitap dusundugunden cok daha fazlası amator denılen ama pıyasadakı cogu profosyonel kıtapdan 40 kat daha ıyı bır kıtap kucuk degıl bır cok projende sana on ayak olacaktır.
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

tmcone

Alıntı yapılan: fatihkuzucu - 27 Ocak 2011, 22:20:37
Alıntı Yap
ileriye dönük düşünüyorsaniz hitechten kullanin. ilk başta zorlanabilisiniz. içinde hazir kütüphanesi yoktur.
ccsc de güzel bir tercihtir. içindebol örneği vardir. kütüphaneleride geniştir. yalniz ansii c standartlarina pek uymaz. bu derlyici ile profesyonel projeleryapanlar biliyorum. küçümsenecek bir derleyici değildir. sadece ilerde başka bir mikrodenetleyiciye geçeceğiniz zaman zorlanirsiniz.

Bilerek yapılan yanlı yorumlar. CCS Anci C destekler. Hitechde yazılabilecek her kod CCSde de yazılır. Üzerinde birde ccsin hazır lib desteği vardır. Başka derleyiciye niye geçilecek ? Farklı firmanın  mcusu kullanacaksa, farklı derleyici gerekebilir evet. Ancak sanılıyorki al kodu buradan taşı öteki derleyiciye yapıştır derle geç :) . Bu işler bu kadar basit değil. LPC2368-LPC1768 pin to pin uyumlu nxp 32 bit mcu ve ikiside keil ile programlanabiliyor. 2368 de yazılmış bir keil kodunu 1768 e taşıyın bakalım  taşıyabilecekmisiniz ?
Kendi kendinize her şeyi yazma konusunda sabit fikirli olabilirsiniz. Ancak bunu CCS dede yapabilirsiniz. Yoksa o yaramaz, bu daha iyi gibi fikirleriniz nesnel olmaktan çıkıyor.

CCS C, Ansi C uyumlu olduğunu iddia eder ama mevcut haliyle öyle değildir. Hazır kütüphanelerinin olması, birçok öntanımlı makroyla gelmesi onun Ansi C olmadığı anlamına gelmez. Hitech PICC18 ve C18'de de çevresel birimler için hazır kütüphaneler var. Fakat CCS C'nin varsayılan değer tiplerinin boyutu, kimi saf C sözcüklerinde hata vermesi, çoklu dosya derleme modeli vb. gibi Ansi C den uyumsuz yanları mevcut. Aslında bu üç derleyicinin hiçbirinin %100 Ansi C uyumlu olduğu söylenemez; çünkü gömülü sistemler için bunlar. Örneğin bunlarda PIC'in hafızasının yetersiz olması ve hardware stack olmaması nedeniyle öz yinelemeli (recursive) fonksiyonlara destek verilmez. Bunların birinde yaptığınız işi diğerlerinde de rahatlıkla yapabilirsiniz; hatta sadece bir header dosyası ekleyerek tek bir nokta dahi değiştirmeden (registerlar dahil) kodunuzu bu üç derleyicide derleyebilirsiniz. CCS C nin ve kısmen Hitech C nin en büyük dezavantajı Microchip'in kütüphanelerini kullanmak istediğinizde ortaya çıkar.

eltci