Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

CCS C kütüphaneleri?

Başlatan makine_terbiyecisi, 13 Ocak 2018, 13:42:17

makine_terbiyecisi

Merhaba arkadaşlar,

CCS C mikrodenetleyici kaynak kodlarını nerden bulabilirim?
Örneğin diyelim ki ben 16Fxx mikrodenetleyiciyi kullanıyorum.
Bunun 16Fxx.h header dosyası var.
Peki 16Fxx.c dosyasını bulabilir miyim?

Yada şöyle diyeyim 16Fxx.h dosyasındaki fonksiyonların kodlarını görebilir miyim?

KEIL, EmBitz gibi arm denetleyicilerde buna izin veriyorlar. Yani tamamen açık kaynak kodlu çalışıyorlar.
CCS C de açık kaynak kodlu çalışıyor mu?

İyi çalışmalar.
# ÖĞRENELİM, ÖĞRETELİM #

omereliusuk

C:\Program Files (x86)\PICC\Examples
veya
C:\Program Files\PICC\Examples
buradan hangi örneği incelemek istiyorsan açıklanmış.

makine_terbiyecisi

#2
Alıntı yapılan: omereliusuk - 13 Ocak 2018, 14:04:59
C:\Program Files (x86)\PICC\Examples
veya
C:\Program Files\PICC\Examples
buradan hangi örneği incelemek istiyorsan açıklanmış.

Teşekkür ederim.

Onu bende biliyorum. Benim istediğim orada kullanılan fonksiyonların kodlarını görmek.
Örneğin read_adc() diye bir fonksiyon var. Ben bu fonksiyonun arkasında işlenen kodları görmek istiyorum.
Şöyle,

void read_adc(){
     ...
     ...
     ...
}


iyi çalışmalar.
# ÖĞRENELİM, ÖĞRETELİM #

omereliusuk

önce compile edersiniz. arkasından compile bölümünün en sonunda (EN SAĞ tarafında)
C/ASM List
şeklinde gösterilen bir buton var. orada neler yaptığını açıklıyor.

mehmet

O halde buyurun XC ye.
//------------------------------------------------------------------------------
//
void initADC(void)
{
    ADCON0bits.ADFM = 0b1;  //Right
    ADCON0bits.VCFG = 0b0;  //Vref = Vdd

    ANSELbits.ADCS = 0b111; //Frc
    ANSELbits.ANS  = 0b0011;//an0 ve an1 secili 
}

//------------------------------------------------------------------------------
//
uint16_t analogOku(uint8_t kanal)
{
    uint8_t sec = 0;
    sec = kanal;
    //if(kanal > 1) sec = 0;

    ADCON0bits.ADON = 0b1;  // analog çevrimi baslat
    ADCON0bits.CHS = sec;   // kanal sec 1, 2, 4, 8
    __delay_us(20);         // akustik zamanını bekle
    ADCON0bits.GO_nDONE = 1;    //çevrim bitene kadar bekle
    while(ADCON0bits.GO_nDONE);
    ADCON0bits.ADON = 0b0;  // adc çevrimi kapat
    
    return (ADRESH << 8) + ADRESL;
}


Pek fonksiyonel değil bu kodlar ama bana yetiyor.
Gerektiği şekilde düzenliyorum kendimce.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

fide

Merhaba.
Ccs c açıkken f1e bas. Yardıma gir. Bütün komutlar teferruatı ile orda var. Print komutunu kullanırken hala ara ara bakarım.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

RaMu

Hem görebilirsin, hem göremezsin
Eğer kütüphane gerektiren fonksiyon ise görebiliyorsun,
örneğin "lcd.c" kütüphanesindeki "lcd_init();" fonksiyonunun
hangi adımlarla neler yaptığını, lcd.init kütüphane dosyasını açıp görebilirsin,
ama
bahsettiğin read_adc(); gibi, derleyici fonksiyonlarını tam olarak göremezsin,
ancak,
derleyici fonksiyonlarının (bahsedildiği gibi) ASM karşılığını c/asm list den inceleyebilirsin,
tabiki
bu asm list de örneğin ADCON registerını, CcsC,
kullandığın o mcu ya karşılık gelen register adresiyle kullandığı için
pek bir şey anlamak mümkün değildir,
verilen XC örneğindeki gibi anlaşılır bir şey çıkmaz ASM list den.

Amaç read_adc gibi fonksiyonları  kendin yazmak veya anlamak ise
CcsC den kopya çekmek zordur,
ama MAPLABX in XC8, XC16, XC32 derleyicilerinden feyz almak çok kolay olur.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

sigmoid

Xc8 de Ctrl tuşuna basarak fonksiyonun ismine tıklayınca fonksiyonun tanımlandığı yere gidiyor.


Ccsc ve mikroc başlangıç için güzel fakat ama arkaplandaki kodlara pek hakim olamıyorsun

sifirzero

Ccsc de hersey ayen beyan açik net.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

RaMu

@serkancetin
@mehmet 'in yazdığı init adc ve read adc fonksiyonlarının
CcsC deki karşılığını verebilir misin,
ne kadar ayan beyan görelim.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

sifirzero

Kutuphaneler ve dll var demek istedim.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

omereliusuk

Kıymetli yöneticilerim. Mümkünse konuyu silelim. Yine benim derleyicim senin derleyicini döver noktasına geldik. Bu tür değerlendirmeler bu forma yakışmıyor

RaMu

@omereliusuk öyle bir durum yok nereden çıkarıyorsun,
zaten kullandığım IDE yi derleyiciyi kötülüyorum.



Ben alışkanlıktan ötürü CcsC kullanıyorum, birde ASM
varsa bir yöntem görelim, öğrenelim
yoksa olmayan şeye var deyip
yanlış bilgi vermiş oluruz.


Kime ne her hangi bir derleyiciden,
kullanıyorum ben yapmadımya :)
işimi ne yarıyorsa ve kullanabiliyorsam onu kullanırım,
herkes bu durumda zaten.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Murat Mert


Alıntı yapılan: RaMu - 15 Ocak 2018, 07:57:30
@omereliusuk öyle bir durum yok nereden çıkarıyorsun,
zaten kullandığım IDE yi derleyiciyi kötülüyorum.



Ben alışkanlıktan ötürü CcsC kullanıyorum, birde ASM
varsa bir yöntem görelim, öğrenelim
yoksa olmayan şeye var deyip
yanlış bilgi vermiş oluruz.


Kime ne her hangi bir derleyiciden,
kullanıyorum ben yapmadımya :)
işimi ne yarıyorsa ve kullanabiliyorsam onu kullanırım,
herkes bu durumda zaten.


++1  ;)
aynen
mert07

fide

Kişilere hitap ve forumun amacına hizmet etmesi açısından genel sohbette @Teğmen in başlattığı bir sohbet var.


https://www.picproje.org/index.php/topic,71666.0.html


Forumdaki kimseyi şahsen tanımıyorum. Kişisel bir niyetim de yok. Bazı arkadaşların uslüp konusunda biraz daha centilmen olması gerektiğini düşünüyorum. Herkesin bildiği, tecrübe ettiği konular vardır. Maksat faydalı olmaksa amenna ama bildiğiyle hava atmak yada laf yarıştırmaksa kusura bakmayın yeri burası değil. Forumda yeniyim. Bişeyler öğrenmeye ve bildiğim kadarıyla başkalarına da faydalı olmaya çalışıyorum.
Lütfen bu yazıya cevap verme niyetinde olan arkadaşlar önce yukardaki linkteki yazıyı okusun. Sonra cevap versin.


Taraf olma niyetinde değilim. Ama daha centilmen ve açıklayıcı yazılar yazılması yada nokta atış olarak - bu kelimeyi seviyorum - sihirli kelime verilmesi taraftarıyım.
@serkancetin  e saygılarımla

Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com