Hi-Tech Kütüphane Paylaşımı

Başlatan FxDev, 21 Eylül 2009, 19:04:36

FxDev

Arkadaşlar malumunuz CCS C'nin en övündüğü yanı driver desteği. Acaba elimizde bulunan kütüphaneleri bu başlık altında paylaşsak nasıl olur?
Kullanım kılavuzlu, açıklamalı ve en önemlisi mümkün olduğunca uygulamaya ait örnek resimli...
Ne dersiniz?

M_B

Bence cok iyi olur.
Ben genelde forumda olanları library olarak biriktirmeye çalışıyorum.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

serdararikan

bence kimse bu başlığa katkıda bulunmaz çünki bizim ülkemizdeki hitech kullanıcılarının birçoğu paylaşmayı sevmiyor.herkes yazdığı kodların kendisine has olmasını istiyor.

XX_CİHAN_XX

Zaten bu amaçla açılmış Picproje Library diye bir başlığımız var. Yoğun bir talep olursa düzenli olsun diye bu başlığın altına hi tech, ccs, asm, abs, bsg... gibi sabit isimli alt başlıklar eklenip düzenli bir hale getirilebilir.
Bende elimden geldikçe bu başlığa kod koymaya çalışuyorum ama Hi techte bende yeni sayılırım. Dolayısıyla zengin bir kütphanem yok. Elde avuçta ne varsa ekliyoruz. Umarım herkes birşeyler eklerde şuanda olduğu gibi gariban kalmaz.
iyi bayramlar.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

KAZIMUGUR

Hazır bir şeylerle günü kurtarmak için CCS var .

Bir şeyler yapıpda şurası çalışmadı burası tırtladı gibi bir şeyler yazıp cevap almadığınız oldumu ?  :roll:

Hi-Tech ile ilgili bir sürü şey eklendi , programlardan hazır kodlara kadar.
Birazda sizi görelim.

Okan AKÇA

sonucta ccs de c hitec c cevirisiniz tırmalamaya gerek yok

muuzoo

Alıntı yapılan: "cyclone"sonucta ccs de c hitec c cevirisiniz tırmalamaya gerek yok

Bazı işlemleri birebir çeviremezssiniz. CCS de c standartlarında olmayan komutlar var.

Böyle bir çalışma oldukça faydalı olacaktır. Özellikle pic in donanımsal özelliklerini kullanmak için gerekli kütüphanler oldukça faydalı olacaktır.
gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

serdararikan

Alıntı yapılan: "FxDev""CCS de C Hi-Tech de C" mi acaba?

Aşağıdaki kodlar C'nin içinde olmayan fonksiyonlardır ve makinenizin rezistansında kreçlenme yapar.
Onun için siz C severlere, her kod yazımında bir ölçek Hi-Tech öneriyorum...

shift_left(&data,1,input(MCP3208_DOUT));
shift_right(&data,1,input(RTC_IO));
output_low(GLCD_DI);
output_high(GLCD_DI);
output_bit(RTC_IO, shift_right(&cmd,1,0) );
bit_set(displayData[index], y%8);
bit_clear(displayData[index], y%8);
...
bahsedildiği gibi output_low,shift_right.... gibi şeyler komut değildir bunlar birer fonksiyondurlar.eğer ccs den driverleri hitech e çevirmek isterseniz kendiniz bu fonksiyonları oluşturup çevrirebilirsiniz.Hitech ANSI dir CCS değildir diye bir şey yok.CCS de ansi komutlar ve özel fonksiyonlar kullanır.

SiVRiSiNEK

aşağıdaki gibi çalışır
CCS C yi isterseniz kendi hazır fonksiyonlarını kullanmadanda kullanabilirsiniz, direk registerlere müdahele ederek
tabii bu şekilde kullanabiliyorsanız HiTechi de kullanabilirsiniz CCS yi kullanmanın pek anlamı kalmaz gibi
neyse sonuçta yapılan iş önemli

//#include <htc.h> // İstediğiniz pic'in herhangi başlık dosyasını koyabilirsiniz.

#include <16F628A.H>
#use     FAST_IO(A)
#use     FAST_IO(B)

#byte    PORTA    = 0x05
#byte    PORTB    = 0x06
#byte    TRISA    = 0x85
#byte    TRISB    = 0x86
#byte    ADCON1   = 0x9f
#bit     RA0      = PORTA.0
#bit     RB0      = PORTB.0

//------------------------------------------------------------



void main(void)         // Ana fonksiyon alanı
{
   ADCON1=0x07;      // PORTA dijital olarak yönlendiriliyor
   TRISA=0x01;         // RA0 giriş olarak yönlendiriliyor
   TRISB=0x00;         // PORTB çıkış olarak yönlendiriliyor
   PORTB=0x00;         // PORTB'nin tüm çıkışları sıfırlanıyor
   PORTA=0x00;         // PORTA'nın tüm çıkışları sıfırlanıyor
   for(;;)         // Sonsuz döngüye giriliyor
   {
      RB0=RA0;      // RB0 çıkışı RA0 girişine eşitleniyor
   }
}

serdararikan

Alıntı yapılan: "SiVRiSiNEK"aşağıdaki gibi çalışır
CCS C yi isterseniz kendi hazır fonksiyonlarını kullanmadanda kullanabilirsiniz, direk registerlere müdahele ederek
tabii bu şekilde kullanabiliyorsanız HiTechi de kullanabilirsiniz CCS yi kullanmanın pek anlamı kalmaz gibi
neyse sonuçta yapılan iş önemli

//#include <htc.h> // İstediğiniz pic'in herhangi başlık dosyasını koyabilirsiniz.

#include <16F628A.H>
#use     FAST_IO(A)
#use     FAST_IO(B)

#byte    PORTA    = 0x05
#byte    PORTB    = 0x06
#byte    TRISA    = 0x85
#byte    TRISB    = 0x86
#byte    ADCON1   = 0x9f
#bit     RA0      = PORTA.0
#bit     RB0      = PORTB.0

//------------------------------------------------------------



void main(void)         // Ana fonksiyon alanı
{
   ADCON1=0x07;      // PORTA dijital olarak yönlendiriliyor
   TRISA=0x01;         // RA0 giriş olarak yönlendiriliyor
   TRISB=0x00;         // PORTB çıkış olarak yönlendiriliyor
   PORTB=0x00;         // PORTB'nin tüm çıkışları sıfırlanıyor
   PORTA=0x00;         // PORTA'nın tüm çıkışları sıfırlanıyor
   for(;;)         // Sonsuz döngüye giriliyor
   {
      RB0=RA0;      // RB0 çıkışı RA0 girişine eşitleniyor
   }
}
Bravo @Sivrisinek tam olarak anlatmak istediğim şey bu.Hitech Microchip firmasının bir ürünüdür ve hitech 'de kullanılan htc.h başlık dosyası PIC manuellerindeki kısaltmalara sadık kalınarak hazırlanmış bir başlık dosyasıdır.Eğer sizde CCS için bu şekilde manuellere uygun bir header file oluşturursanız o zaman hitech=ccs olur.

SiVRiSiNEK

http://www.ccsinfo.com/downloads/ansi_compliance.pdf

tam olarak olmasada oldukça ANSI uyumlu :)

edit: ayrıca olayı HiTech & CCS yarışına döndürmeye gerek yok, aslında daha önce CCS ile tanışmamış olsaydım Hi-Techi pekala kullanmak isterdim, kullanabilirimde ileride belli olmaz, çünkü CCS yide genellikle yukarıdaki gibi registerleri elle tanımlayıp kullanıyorum ama bazende nimetlerinden faydalanıyorum mesela delay_ms() gibi komutlar güzel oluyor

serdararikan

Alıntı yapılan: "SiVRiSiNEK"http://www.ccsinfo.com/downloads/ansi_compliance.pdf

tam olarak olmasada oldukça ANSI uyumlu :)
:) pdf i incelerseniz uyumsuz olan kısmın veya tam uyumlu olmayan kısımların PIC donananımından kaynaklandığını görürsünüz.Doğal olarak PIC bir bilgisayar değil.Hatta yeni nesiller hariç daha düne kadar PIC ailesinde okunup-yazılabilen yazılım kontrollü bir stack yapısı bile yoktu.bu şekildeki bir donanım için C nin özelliklerinin tamamını kullanmak imkansız Hitech de de aynı durum geçerli...

SiVRiSiNEK

25word ROM
6byte RAM kullanmış

yalnız aşağıdaki sayfada Section 5 Benchmark kısmına bakarsanız belkide CCS ye geçersiniz :)

şaka yapıyorum, at sahibine göre kişner ne dediğimi anladınız

http://www.ccsinfo.com/content.php?page=newcompilercomp

bymrz

Alıntı yapılan: "SiVRiSiNEK"25word ROM
6byte RAM kullanmış

yalnız aşağıdaki sayfada Section 5 Benchmark kısmına bakarsanız belkide CCS ye geçersiniz :)

şaka yapıyorum, at sahibine göre kişner ne dediğimi anladınız

http://www.ccsinfo.com/content.php?page=newcompilercomp



hadi buyur burdan yak  :D

yav arkadaş tam diyosun ki aha da işte bu... sonra listedeki karşılaştırmayı görünce yine adamın kafası karışıyor...   :?:

serdararikan

Alıntı yapılan: "alone_lover"
Alıntı yapılan: "SiVRiSiNEK"25word ROM
6byte RAM kullanmış

yalnız aşağıdaki sayfada Section 5 Benchmark kısmına bakarsanız belkide CCS ye geçersiniz :)

şaka yapıyorum, at sahibine göre kişner ne dediğimi anladınız

http://www.ccsinfo.com/content.php?page=newcompilercomp



hadi buyur burdan yak  :D

yav arkadaş tam diyosun ki aha da işte bu... sonra listedeki karşılaştırmayı görünce yine adamın kafası karışıyor...   :?:
kafan hiç karışmasın arkadaşın.bir hedef seç ve oraya saldır.hitech,ccs,falan filan hepsi bir araç amaç değil.