XC Lite Versiyonu ve XC Evaluation Versiyonu

Başlatan serhat1990, 11 Ekim 2012, 16:17:36

serhat1990

Merhaba değerli PicProje Ailesi ;

Bugün itibariyle çalışan bir programımı Hi-tech C ' dilinden XC8 ' e geçirmeye başladım . Bir kaç tane aklıma takılan nokta var . Hi-Tech C dilinde yazdığım yazılımsal usart kütüphanem var. Timer ile yapmıştım . Bu kütüphaneyi XC8'e uyarladım . Yazılımsal usart Hi-tech C dilinde çok güzel çalışıyor . Bozuk data falan gibi birşey olmuyor . Yalnız xc8'de oluyor . Örneğin ,  PicProje mesajını gönderecem . Hi-tech c ' de PicProje diye ekranda yazarken , XC8 'de Pi?Pr%+e Gibi birşey yazıyor . Sonuçta timer ile yazıyorum . Frekansım aynı timer sayma değeri aynı . Aynı devre . Aynı kablo . Ama bu olayı kafam almadı . Ne gibi bir sebeb olabilir. Config ayarlarından desem o zaman mesajda doğru karakter görmem :)

Cevaplarınızı bekliyorum . Herkese iyi çalışmalar.


Düzenleme :


Sorunu düzelttim . Ben böyle bir saçmalık görmedim . Bunu böyle açık belirtebiliyorum . XC8 lite versiyonu kuruluydu bilgisayarımda . Kaldırdım ve 60 günlük full sürümünü yükledim . Programda hiç bir değişiklik yapmadım . Ve kütüphanelerimin hepsi düzgün çalıştı . Anlamadığım nokta lite versiyonunda optimizasyon seviyesi düşük olur tamam . Kod sınırlaması olur tamam . Ama aynı kodun birinde düzgün çalışması diğerinde çalışmaması ilginç . Lite versiyonunuda bugün kurdum güncel versiyon değildir gibi birşeyde olamaz .

Çalışacak arkadaşların dikkatine 60 günlük full sürüm versiyonunu kurun . Çalışmalarınızı onun üstünden yapın . Lite versiyonunda yazdığınız düzgün çalışmayan kod , full sürümde çok iyi çalışabilir :)

Konu başlığını bu olay sonrasında değiştirdim .

İyi çalışmalar Herkese ... 

kantirici

#1
Merhaba, bende bugün xc8 ile biraz deneme yapayım dedim ama delaylarla başım dertten kurtulmadı. :(

Acaba kullandıgın delay kütüphanesini ekleyebilirmisin?

serhat1990

#2
Alıntı yapılan: kantirici - 11 Ekim 2012, 18:29:24
Merhaba, bende bugün xc8 ile biraz deneme yapayım dedim ama delaylarla başım dertten kurtulmadı. :(

Öncelikle yeni kurduysan lite versiyonunu değilde 60 günlük full sürümü kur .

Ne gibi bir problemin var ?

Delay kütüphanesi xc.h içerisindeki dosyalar ile hazır geliyor.

#define _XTAL_FREQ 48000000


Kodlarına bu satırı ekle ; sonrasında

__delay_us(100);


Gibi gecikmeleri kullanabilirsin ...

mdargut

Bu aralar benimde başım dertte. Fakat benim sorunum MPLABX ile ilgili. C18 ile yazıyorum kodları, saçma sapan hatalar veriyor. En büyük sıkıntım MPLABX pickit3 e bağlanamıyor. Ama pickit3 ün kendi programı gayet güzel çalışıyor. Daha önceden direkt MPLABX den yüklüyordum yazılımı ne oldu anlayamadım. Son versiyonları yükledim ama sorunlar devam ediyor.

mozkan87

Alıntı yapılan: kim - 11 Ekim 2012, 20:36:36
Bu aralar benimde başım dertte. Fakat benim sorunum MPLABX ile ilgili. C18 ile yazıyorum kodları, saçma sapan hatalar veriyor. En büyük sıkıntım MPLABX pickit3 e bağlanamıyor. Ama pickit3 ün kendi programı gayet güzel çalışıyor. Daha önceden direkt MPLABX den yüklüyordum yazılımı ne oldu anlayamadım. Son versiyonları yükledim ama sorunlar devam ediyor.

"MPLAB driver switcher" bu program ile pickiti hangi programın kullanacağını seçebilirsiniz. Başlat menüsünde mplabv klasörü alrında kısa yolu vardır.

serhat1990

Bugünkü olaylardan sonra Microchip yerine alternatif düşünmeye başladım. Bu yaşananlar ufak hatalar gibi gözüksede büyük zaman kayıpları yaratıyor .
Bakalım zaman ne gösterecek ...

ULAGA


serhat1990

Alıntı yapılan: ULAGA - 11 Ekim 2012, 21:29:09
Bu konu, beni de düşündürüyor...

Hocam bugün başıma gelen olay sonrasında iyice düşünmeye başladım . Yani böyle birşeyin mantıklı bir açıklaması varmı bilmiyorum . Ama yapılan iş belli     projeyi lite sürümünde derliyorum . Hatalı çalışıyor hata nerde ordamı burdamı diye bakıyorum ama hatada gözükmüyor . Akşama kadar uğraştım . En sonunda kaldırdım xc ' yi 60 günlük full sürümü kurdum aynı program çok güzel hi-tech c ' de çalıştığı gibi çalıştı . Bu durum sonrasında şüpheye düşmeme gibi bir durum olamaz . Kullanıcı kendi hatasını çözer yapar ama derleyici hatası olursa işler biraz değişiyor .

ULAGA

XC serisi derleyiciler hakkında uzman arkadaşlar var ise bu konuya bekleriz...

serhat1990

Alıntı yapılan: ULAGA - 11 Ekim 2012, 21:56:03
XC serisi derleyiciler hakkında uzman arkadaşlar var ise bu konuya bekleriz...

Katılıyorum Hocam ; elbet bu konuda açıklamalar vardır . Olmalı ...

fgokcegoz

Alıntı yapılan: serhat1990 - 11 Ekim 2012, 18:31:20
Öncelikle yeni kurduysan lite versiyonunu değilde 60 günlük full sürümü kur .

Ne gibi bir problemin var ?

Delay kütüphanesi xc.h içerisindeki dosyalar ile hazır geliyor.

#define _XTAL_FREQ 48000000


Kodlarına bu satırı ekle ; sonrasında

__delay_us(100);


Gibi gecikmeleri kullanabilirsin ...

Delay kütüphaneleri xc.h dosyası içinde gelmiyor. xc.h ı açıp bakarsanız, görürsünüz.
#ifndef _XC_H_
#define _XC_H_

#ifdef __XC8
#include <htc.h>
#endif

#endif		//_XC_H


Delay kütüphanelerini kullanmanız için delays.h ı include etmeniz gerekir. C18 deki gibi... Daha sonra şu fonksiyonları kullanabilirsiniz.

* void Delay10TCYx(unsigned char);      // Bu fonksiyona gönderdiğiniz değerin 10 katı kadar cycle süresi bekleme yapar.
* void Delay100TCYx(unsigned char);    // Bu fonksiyona gönderdiğiniz değerin 100 katı kadar cycle süresi bekleme yapar.
* void Delay1KTCYx(unsigned char);      // Bu fonksiyona gönderdiğiniz değerin 1000 katı kadar cycle süresi bekleme yapar.
* void Delay10KTCYx(unsigned char);    // Bu fonksiyona gönderdiğiniz değerin 10000 katı kadar cycle süresi bekleme yapar.

C:\Program Files (x86)\Microchip\xc8\v1.01\include dizininde delays.h ı bulup inceleyebilirsiniz...
"Vicdanın ziyası, ulûm-u diniyedir. Aklın nuru, fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder." (Bediüzzaman Said Nursi)

frederic

#11
ccs c nin son sürümü gayet stabil serhat,ccs tede istediğin kadar register düzeyinde kod yazabilirsin sana engel olan bir şey yok.İlla derinine inmek istiyorsan işin bu derleyicide de bu olanak var.Şehir efsanelerine kulak asmayın, durmadan derleyici değiştirip proje üretmek için ihtiyacınız olan enerjiyi derleyicilere harcıyorsunuz yazıktır bu zamana.

serhat1990

@fgokcegoz Hocam ;

Hocam delays.h ' ı include etmeden çalışıyor . Benim demek istediğim xc.h içerisinde mevcut demek değildi . Sadece ek bir bir tanımlama yapmadan kullanabiliyorsun demek istedim ... Biraz yanlış açıkladım herhalde kusuruma bakmayın ...

Alıntı yapılan: frederic - 12 Ekim 2012, 10:11:14
ccs c nin son sürümü gayet stabil serhat,ccs tede istediğin kadar register düzeyinde kod yazabilirsin sana engel olan bir şey yok.İlla derinine inmek istiyorsan işin bu derleyicide de bu olanak var.Şehir efsanelerine kulak asmayın, durmadan derleyici değiştirip proje üretmek için ihtiyacınız olan enerjiyi derleyicilere harcıyorsunuz yazıktır bu zamana.

Hocam haklısınız ; derleyici olaylarında vakit kaybı yaşıyoruz . CCS C kullandım eskiden fakat register düzeyinde kod yazmadım ... Biraz kurcalamak gerek teşekkür ederim ...

arslan74

Merhaba,

Bende C18 kod yaziyordum. Sonra XC8 gectim. Kodlarda ufak tefek değişiklikle XC8 göre uyarladım. İkisinin arasındaki farka gelince kısaca acıklamka gerekirse.

C18 in avantajı: Düzgün kod yazarsanız cok sağlam çalışıyor.
Dezavantajı ise bütün kontrolü size bırakıyor. C18 iyice hakim olmadan istediğiniz kodları yazmak cok zor. Yani sadece C bilmeniz yetmiyor, ayrıca derleyicin huyunu suyu cok iyi bilmeniz gerekiyor.

XC8 iv Avantajı: 256 byte den uzun dizi tanımlayabiliryorsunuz, hiç bir dosyanın ayarlarıyla oynamanız gerekmiyor. interrupt fonksiyon yazması daha kolay. Kullanılmayan yerel ve global değişkenleri söylüyor. Daha az kod üretiyor.
XC8 Dezavantajları: Stabil çalışmıyor. Benim başıma gelen bir olayı anlatayım. normal printf fonksiyonunu LCD ye yazı yazacak şekilde C18 ayarladım. Hiçbir sorunla karşılaşmadım. bu şekilde sorunsuz kullandım. Aynı fonksiyonu XC8 aktardım, oda çalışmaya başladı. Ancak uzun çalıştıktan cok defa derleme yaptıktan sonra printf fonksiyonu çalışmadı. Ekrana hiçbir yazı yazmaz oldu. XC8 Pro mode kullanıyordum. Kodlardamı hata varmı diye araştıma yaptım. Uzunca bir araştırmadan sonra pro mode yerine standart modda derlediğimde kod düzgün çalıştı. pro mode derlediğimde kod çalışmadı. işin garibi pro mod da daha önceleri derledim ve düzgün çalışmıştı. bilgisayarı yeniden baştıp pro modda derlediğimde bu sefer bu kodda düzgün çalıştı. Sonra tekrar belli bir derlemeden sonra yine printfleri parametreli kullandığımda çalışmadı. Bende onların kendim fonksiyon yazdım sorunu öyle çözdüm.

Ama printf in bir çalışıp çalışmadında bir gariplik var. Umarım 1.01 Ver üzerindeki versiyonda bu sorunu çözmüş olurlar.

Birde derleme hizi cok yavaş. C18 kıyaslandığında bana göre en 5 kat yavaş derliyor. XC32 kıyaslandığında ondan 10 fazla hızlı çalışıyor. Üsterlik ondan cok daha fazla uzun kod üretmesine rağmen.

Sonuc olarak XC8 in cok güzel özellikleri, kullanımı cok kolay. Biraz daha stabil hale getirebilirlerse gercekten kullanmak cok fayda var.

serhat1990

Arslan Hocam ; dediğiniz gibi . Bende hi-tech c ' den geçiş yaptım . Pek fazla sıkıntı çekmedim en büyük sıkıntı derleyicinin derleme problemlerindeki korkular . Eskiden Hi-tech ile yazdığım 1 hafta test ettiğim bir projeyi xc ' ile yazdıklarımda test aşamasına en az 2 katına çıkaracam . Bu derlemelerde çalışıp çalışmama olayı sıkıntılı .