hi-tec programı kulanma ?

Başlatan matematika, 02 Kasım 2005, 12:57:51

matematika

.

Digimensch

Evet arkadaslar acaba bu Programi kullanma islemini kisaca bir örnekle anlatabilirmisiniz?
Bende Arslan74 arkadasin verdigi Linkten indirdim fakat kullanma konusunda bir kac ip ucuna ihtiyacim var.

Digimensch

Ya arkadaslar bu HI-TECH PIC C'yi öven cok ama ne yazikki anlatan yok.
bu bölümü aradim taradim ama bu hi-tech pic icin gerekli Hi-Tech ver. 9.50 ve crimson editör programlarini indirdim.
fakat ne yazikki nasil kuracagimi , nelere dikkat edecegimi anlatan bir yazi bulamadim
sizlerden ricam simdi
Bu programlari nasil kurabilirim?Baska neler gerekli?
Nelere dikkat etmeliyim?
Kurma islemi bittikten sonrada bir deneme derlemeyi nasil yapmaliyim?
Ufak bir Kod derleme örnegi...

not:lütfen konu Hakkinda bilgisi olmayan arkadaslar konuy dagitmasin.Cünkü bu bilgilere cok ihtiyacim var.

mcan

file------->new------->project----->picproject------>isim falan tanımla---->pic seç------.... main yazıl mış bir c dosyası oluşuyor başında #include  htc.h satırı var ne yazarsam yazayım o bulunabmadı bu bulunamadı diyor mesela

#include htc.h

void main(){ portb=0;}
 save   ye basınca portb bulunamadı tanın madı şu oldu buı oldu diye hata mesajları veriyor...
birisi anlatabilirmi kullanımını birde basit led yakan bir uygulama göstersin,önceden bu hitec dosda çalışlıyordu pic.h ekleyip pici seçip devam ediyorduk bu ne biçim derleyici olmuş böle çok karışık gözüküyor ama hoşuma gitti doğrusu ilk haline göre baya değişmiş

Digimensch

Ben en sonunda CCS C kullanmaya karar verdim.CCS C Compileri kullanmak daha kolay HI-TECH Compileri bende anlayamadim.
Tavsiyem CCS C kullanman.

emrahmrcn

Benim notlardan kısaca ;

Genel program bloğu 
                 
   #include <pic.h>  
  
    main(void)
{
  TRISA=0xFF; //bütün porta giriş
  TRISB=0x00; //bütün portb çıkış
  
  RB0=1; //portb0 ı 1 yap.(HIGH)
  RB0=0;//portb0 ı 0 yap .(LOW)


}


Diyelimki siz her bir port numarası için ayrı giriş çıkış kullanacaksınız o zaman TRISB=0b00001001   diyerek tanıtırız.Başdaki 0b bit bazında tanımlama yaptığımızda kullanılır.Bunu PORTB=0b11110000 olarakda kullanabiliriz.

Değişkenler ise ;  bilindik c yapısı içinde tanıtılır.Örneğin unsigned char değişken gibi.
Değişken aralıkları ise ;
unsigned char a;  //8 bits, 0 to 255
signed char b;    //8 bits, -128 to 127
unsigned int c;   //16 bits, 0 to 65535
signed int d;     //16 bits, -32768 to 32767
long e;           //32 bits, -2147483648 to 2147483647
float f;          //24 or 32 bits, depending on options under 

Operatörler;

For döngüsü belli sayıda altındaki bloğu tekrarlatır;

For (j=0 ; j<15 ; j++)		// 0 dan 14 e kadar tekrarla


While döngüsü belli bir koşul doğru olduğu sürece altındaki bloğu tekrar eder, koşul doğru değil ise bloğu atlar

While(n!=0)                      // n    0 olana kadar devam et


Do While döngüsü do altındaki ifadeleri while doru olduğu sürece çalıştırır.

Do
 {

	Bişeyler yap;
	Çıkmak için Y basın Devam için N ;
 }

While(çıkmak=N);



If döngüsü koşul doğru ise altındaki bloğu yürütür ,değilse atlar

İf (sayi=1)
Sayı bire eşittir;
Sayı bire eşit değildir;

İf (sayi=1)
{
	sayı bire eşit;
	sayı 1 e bölünebilir;
}	

Sayı bire eşit değildir;


BIT BAZINDA İŞLEMLER

C dilinde birçok sayıda bit düzeyinde mantıksal işlem yapabilirsiniz. Bu işlemler, double ve float türündeki değişkenler için geçerli değildir. 

Bu operatörlerin başlıcaları şunlar: 

&  Bit Düzeyinde AND (sadece iki bit 1 olursa sonuç 1 olur)
|  Bit Düzeyinde OR  (sadece iki bit 0 olursa sonuç 0 olur)
<< Bit Düzeyinde Sola Kaydırma
>> Bit Düzeyinde Sağa Kaydırma

LEFT SHIFT 		RIGHT SHIFT
00000101 (5) 		~ 00000101 (5)
<< 2 			>> 2
---------------- 	----------------
= 00010100 (20) 	00000001 (1)


Define komutu ise ;

#define on 1  // define satırında sona include gibi virgül gelmez.Burdaki tanımlamada hi-tech içinde "on" yazdığınız her şey 1 e karşılık gelir.Örneğin RB0=on   , RB0=1 ile aynı şeydir.
Benim yaradılışımda bir ayrıcalık varsa o da TÜRK olmamdır. M.K ATATÜRK

Digimensch

Arkadaslar Hi-Tech 'i Ansi C dilini destekliyor olmasi nedeniyle Hi-Tec ögrenmeye karar verdim.
Simdi Hi-Tech de bir Program yapisi nasil olmali?
Örnegin CCS 'de bir PIC16F84 icin Program icin söyle tanimlamalar falan yapiyorduk.
#if defined(__PCM__)
#include <16F84.h>


Sonra eger kullanacaksak Degiskenler falan tanimliyorduk.
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)

#define LED_ON output_low(PIN_B0);
#define LED_OFF output_high(PIN_B0);


Acaba bu islemler Hi-Tech'dede yapilmasi gereklimi?
Zira ben Hi-Tech ile MPLAB IDE'sini integre ettim.
MPLAP editörde zaten bir Proje olustrumak istedigimizde new Wizard ile Poc secenegini fala yapiyoruz.Bu nedenle direk
main()
{
}
funktionu ile Programa girip yazmamiz yeterli olacakmi?
Yani su skilde:
#include <pic.h>  
  
    main(void) 
{ 
  TRISA=0xFF; //bütün porta giriş 
  TRISB=0x00; //bütün portb çıkış 
  
  RB0=1; //portb0 ı 1 yap.(HIGH) 
  RB0=0;//portb0 ı 0 yap .(LOW) 


}  


sadece  #include <pic.h>   kütüphanesini belirtmek yeterli olacakmi?
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
gibi özellikleri nerde ve nasil belirmeliyiz?

CoşkuN

Hi-Tech C ,eğer ANSI C biliyorsanız ve biraz da assembly biliyorsanız ideal bana kalırsa.
Yukarıdaki #fuse,#delay gibi deyimler yok.Zaten fuse denilen konfigürasyon ayarlarıdır.Onlar "configuration" menüsünden ayarlanıyor(MPLAB).
Bunun dışında CCS C'deki birçok hazır fonksiyon Hi-Tech'de bulunmuyor.
Yani dediğin gibi belirli ayarlardan sonra direk int main() fonksiyonuna dalabilirsin.