pıc c dilinde yazılmış kodu hex e çevirme

Başlatan nusi, 20 Ocak 2016, 14:07:28

nusi

Selam arkadaşlar. Bir sorunum var yardım eder misiniz? pıc c dilinde yazılmış bu kodları hex e çevirebilir misiniz?
#include <16f877a.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
// Denetleyici konfigürasyon ayarları
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
#use fast_io(b) //Port yönlendirme komutları A portu için geçerli
#use fast_io(c) //Port yönlendirme komutları C portu için geçerl
#use fast_io(a)
#define sensor pin_a0
/********* ANA PROGRAM FONKSİYONU********/
void main ( )
{
setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
setup_adc(ADC_OFF);             // ADC birimi devre dışı
set_tris_b(0x1F);   // bunlar sensörün sayısına göre değişir 1=giriş 0= çıkış demek
set_tris_c(0x00);
set_tris_a(0x01);//
//output_c(0xA0);
setup_ccp1(CCP_PWM);  // CCP1 birimi PWM çıkışı için ayarlandı
setup_ccp2(CCP_PWM);  // CCP2 birimi PWM çıkışı için ayarlandı
setup_timer_2(T2_DIV_BY_16,170,1); // Timer2 ayarları yapılıyor
 while(1) // Sonsuz döngü
{
if(input(sensor))
{
set_pwm1_duty(0); // PWM1 çıkışı görev saykılı belirleniyor. bu oranları değiştirebilir farklı hızlar  oluşturabilirsiniz.
set_pwm2_duty(0);
}
else if (input(pin_b4)==1&&input(pin_b3)==1&&input(pin_b2)==0&&input(pin_b1)==1&&input(pin_b0)==1) // pin b2 ortadaki sensöre bağlı onu görürse motorları 100/170 oranında sürüyor. 1,motor ileri 2,motor ileri
{
output_c(0xA0);
set_pwm1_duty(75); // PWM1 çıkışı görev saykılı belirleniyor. bu oranları değiştirebilir farklı hızlar  oluşturabilirsiniz.
set_pwm2_duty(75); // PWM2 çıkışı görev saykılı belirleniyor. örneğin 170 yaparsanız motorunuz max hız ile dönecektir.
}
else if (input(pin_b4)==1&&input(pin_b3)==0&&input(pin_b2)==0&&input(pin_b1)==1&&input(pin_b0)==1&&input(pin_a0)==1) //
{
output_c(0xA0);
set_pwm1_duty(70); // PWM1 çıkışı görev saykılı belirleniyor  1.motor geri
set_pwm2_duty(0); // PWM2 çıkışı görev saykılı belirleniyor  2.motor ileri
}
else if (input(pin_b4)==1&&input(pin_b3)==0&&input(pin_b2)==1&&input(pin_b1)==1&&input(pin_b0)==1)
{
output_c(0xA0);
set_pwm1_duty(80); // PWM1 çıkışı görev saykılı belirleniyor
set_pwm2_duty(0); // PWM2 çıkışı görev saykılı belirleniyor
}

else if (input(pin_b4)==0&&input(pin_b3)==0&&input(pin_b2)==1&&input(pin_b1)==1&&input(pin_b0)==1)
{
output_c(0xA0);
set_pwm1_duty(90); // PWM1 çıkışı görev saykılı belirleniyor
set_pwm2_duty(0); // PWM2 çıkışı görev saykılı belirleniyor
}
else if (input(pin_b4)==0&&input(pin_b3)==1&&input(pin_b2)==1&&input(pin_b1)==1&&input(pin_b0)==1)
{
output_c(0xA0);
set_pwm1_duty(100); // PWM1 çıkışı görev saykılı belirleniyor
set_pwm2_duty(0); // PWM2 çıkışı görev saykılı belirleniyor
}
else if (input(pin_b4)==1&&input(pin_b3)==1&&input(pin_b2)==0&&input(pin_b1)==0&&input(pin_b0)==1)
{
output_c(0xA0);  // 1.motor ileri 2,motor geri
set_pwm1_duty(0); // PWM1 çıkışı görev saykılı belirleniyor
set_pwm2_duty(70); // PWM2 çıkışı görev saykılı belirleniyor
}
else if (input(pin_b4)==1&&input(pin_b3)==1&&input(pin_b2)==1&&input(pin_b1)==0&&input(pin_b0)==1)
{
output_c(0xA0);
set_pwm1_duty(0); // PWM1 çıkışı görev saykılı belirleniyor

set_pwm2_duty(80); // PWM2 çıkışı görev saykılı belirleniyor
}
else if (input(pin_b4)==1&&input(pin_b3)==1&&input(pin_b2)==1&&input(pin_b1)==0&&input(pin_b0)==0)
{
output_c(0xA0);
set_pwm1_duty(0); // PWM1 çıkışı görev saykılı belirleniyor
set_pwm2_duty(90); // PWM2 çıkışı görev saykılı belirleniyor
}
else if (input(pin_b4)==1&&input(pin_b3)==1&&input(pin_b2)==1&&input(pin_b1)==1&&input(pin_b0)==0)
{
output_c(0xA0);
set_pwm1_duty(0); // PWM1 çıkışı görev saykılı belirleniyor
set_pwm2_duty(100); // PWM2 çıkışı görev saykılı belirleniyor
}
else if (input(pin_b4)==1&&input(pin_b3)==1&&input(pin_b2)==1&&input(pin_b1)==1&&input(pin_b0)==1)  //1.motor geri 2.motor geri
{
output_c(0x50);
set_pwm1_duty(50); // PWM1 çıkışı görev saykılı belirleniyor
set_pwm2_duty(50); // PWM2 çıkışı görev saykılı belirleniyor
}
}
}


vitruvius

:1000000000308A000428000083161F149F141F1557
:100010009F1107309C0083131F3083050912831240
:10002000900183161F149F141F159F1183121F1018
:100030001F30831686000030870001308500831250
:1000400007110C30970087109D000030F80006382B
:100050009200AA30831692008312051C3228950163
:100060009B01D328061E4228861D422806194228D5
:10007000861C4228061C4228A03087004B30950081
:100080009B00D328061E5428861954280619542884
:10009000861C5428061C5428051C5428A0308700B0
:1000A000463095009B01D328061E642886196428D3
:1000B000061D6428861C6428061C6428A03087005E
:1000C000503095009B01D328061A7428861974288D
:1000D000061D7428861C7428061C7428A03087000E
:1000E0005A3095009B01D328061A8428861D84283F
:1000F000061D8428861C8428061C8428A0308700BE
:10010000643095009B01D328061E9428861D9428F0
:100110000619942886189428061C9428A030870075
:10012000950146309B00D328061EA428861DA428CE
:10013000061DA4288618A428061CA428A030870021
:10014000950150309B00D328061EB428861DB42884
:10015000061DB4288618B4280618B428A0308700D5
:1001600095015A309B00D328061EC428861DC4283A
:10017000061DC428861CC4280618C428A030870081
:10018000950164309B00D328061ED328861DD328F2
:10019000061DD328861CD328061CD3285030870080
:0A01A000323095009B002D2863000B
:02400E00393F38
:00000001FF
;PIC16F877A
;CRC=5FFC  CREATED="20-Jan-16 14:39"

nusi

hocam çok teşekkür ederim. bu kodları pic e nasıl yükleyebilirim? hex dosyası şeklinde yükleyebilir misiniz?

MrDarK

arkadaşın hazırladığı kodu not defterine kopyala
Farklı kaydet seçeneğini seç
Altta kayıt türü alanını Tüm Dosyalar olarak seç
Dosya ismini de kod.hex şeklinde belirlersen hex olarak kaydetmiş olursun.
Picproje Eğitim Gönüllüleri ~ MrDarK

nusi


nusi

#5
selam arkadaşlar. aşağıdaki kodları hexe çevirebilirmisiniz?
#include <16F877A.h>
#device adc=10
#FUSES HS //High speed Osc (> 4mhz)
 
#use delay(clock=20000000)
 
#use fast_io (a)
#use fast_io (c)
 
void main()
{
   set_tris_a(0xFF);
   set_tris_c(0xF0);
   while (true)
   {
      if(input(pin_a0)==0)
      {
         output_c(0x0a); // Sağ geri sol ileri
      }
      if(input(pin_a1)==0)
      {
         output_c(0x02); // Sağ duruyor sol ileri
      }
      if(input(pin_a2)==0)
      {
         output_c(0x06); // Sağ ileri sol ileri
      }
      if(input(pin_a3)==0)
      {
         output_c(0x04); // Sağ ileri sol duruyor
      }
      if(input(pin_a5)==0)
      {
         output_c(0x05); // Sağ ileri sol geri
      }
   }
}
 


mesaj birleştirme:: 16 Şubat 2016, 11:00:11

arkadaşlar birde sorum olacak? bu kodlar beyaz çizgiyi takip eden robot için yazılmış. kodlarda bir hata var mı kontrol edebilir misiniz?

RaMu

https://www.picproje.org/index.php/topic,4523.msg400286.html#msg400286

Yukarıdaki linkden CcsC programını (ide + derleyici) indir, 5.025 versiyonu tavsiyemdir.
5dk sürer, indirip yüklemen,

Netten 2 tane CcsC videosu izle,
10 dk da bu sürsün,
15dk da çok yoruldum de bir kahve yap iç desen,
yarım saate bulduğun her ccsc kodunu hex e çevirebilir hale gelirsin.

(Tamam her ve yarım saat kısmı biraz iyimser oldu.)
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

nusi

#7
Arkadaşlar yukarıdaki kodlar siyah çizgi takibi için. beyaz çizgiyi takip etmesi için nasıl değiştirebilirim?