Arduino kütüphanesini Ccs C kütüphanesine çevirmek mümkünüm mü?

Başlatan aladdn07, 04 Mart 2015, 13:09:44

aladdn07

Sölediğim gibi arduino kütüphanesi mevcut o kütüphaneleri pic lerde kullanmak istiyorum bu yapılabilineceğine biliyorum ama denedim ama yapamadım.
Eğer yapabilecek arkadaşlar varsa yardım etsin lütfen tüm öğrenciler adına örnek veriyorum uzaktan kumanda modülü arduino daki nfc modülü ve benzeri örnekler mevcut.yapanların elleri dert görmesin.Şimdiden yardımcı olan herkese Teşekürler 

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

aladdn07

o en basiti çünkü arduino bi araçtır örneğin ferari gibi ama başşka mcularda fln ardunioda yapılabilmeli işte bunu çözümü asıl istedigim bnm bu ?anlata bildinmi sadece pic ile sınırlama kendini arm da lpc ye dafam çook takıldı bu aralar mesela

makdeniz

Kodları iyi incelemek lazım... Kullanacağınız mcu'lar arasında donanımsal farklılıkları da göz önünüe alınarak yapılması mümkündür...
Karanlık olmadan aydınlık, Ölüm olmadan yaşam mantıksız.

MrDarK

Çeviri yapacağınız platformda ve mevcut platformdaki tecrübeleriniz çok önemli bence bu işlemi yapabilmek için, Eğer çeviri yapacağınız platformu tanımıyorsanız başarılı olamazsınız.

Arduino kütüphanelerinin bir kısmını ben STM için çevirmiştim ve çokta yararlı olmuştu arduino kütüphaneleri :)

Önce çeviri yapacağın yere odaklan, kütüphanede kullanılan donanımların listesini çıkart , onları çeviri yaptığın yerde ne kadar nasıl kullanabiliyorsun bunları iyice geliştirmek lazım
Picproje Eğitim Gönüllüleri ~ MrDarK

volkii

Kütüphane eğer hardware ile doğrudan  ilişkili değilse kullanılabilir. örneğin CRC hesaplama, matematiksel işlemler v.s. kullanılabilir.

mehmet

Kullanacağınız mcu' yu iyi tanırsanız,
bu tür değişiklikleri de yapmak mümkün.
Ama önce ise basit ve anlaşılır işlerden
başlamak lazım. 
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

Recep METE

Güzel bir konu açılmış. Aurdinioda yapılmış bir çok projeyi CCS C de yapmak istiyor insan.Burada  kodları karşılaştırarak paylaşsak ne iyi olurdu.

mesaj birleştirme:: 07 Mart 2015, 04:09:46

UFAK BİR KATKIM VE BİR BAŞLANGIÇ OLSUN;


   CCS C
   output_high(pin_b0);  // RB0 pini çıkışı lojik-1 yapılıyor
   output_low(pin_b0);   // RB0 pini çıkışı lojik-0 yapılıyor
 
   Arduino
   pinMode(2,INPUT);// 13 nolu pin giriş
   pinMode(2,OUTPUT);//13 nolu pin çıkış

    digitalWrite(2, HIGH); // 2 nolu pin lojik-1
    digitalWrite(2, LOW); // 2 nolu pin lojik-0


  ******************************************************
   CCS C
   delay_ms(500);        // 500 ms gecikme veriliyor
   
    Arduino
    delay(1000);
   delay();  Bu fonksiyonun içine yazdığımız kadar fonksiyonumuz o noktada o kadar milisaniye cinsinden durur.
   delayMicroseconds(); Bu fonksiyon ise Microsaniye cinsinden fonksiyonu durdurur.

*************************************************************

ccs c

bilgi=read_adc();     // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor

Arduino
Analog giriş den değer okumak için kullanıcağımız fonksiyon analogRead(pin no); fonksiyonudur. Pin numarası olarak A0 , A1 ... Yazılır.
bilgi = analogRead(A0);
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

aladdn07

evet güzel çalışmak lazım bu konu hakında ben şimdiden baya birşeyler yapmaya başladım hem pic ile hemde arduniono ile ama arduinonun güzel tarafı hazızası 18f serisinde bile fazla bu konuda benim için iyi ama diyemliki hem arduino ve pic aynı anda kullanabiliyorum oo çok ii oldu

aladdn07

/*
 * IRremote
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.htm http://arcfn.com
 * Edited by Mitra to add new controller SANYO
 *
 * Interrupt code based on NECIRrcv by Joe Knapp
 * http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556
 * Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/
 *
 * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post)
* LG added by Darryl Smith (based on the JVC protocol)
 */

#ifndef IRremote_h
#define IRremote_h

// The following are compile-time library options.
// If you change them, recompile the library.
// If DEBUG is defined, a lot of debugging output will be printed during decoding.
// TEST must be defined for the IRtest unittests to work.  It will make some
// methods virtual, which will be slightly slower, which is why it is optional.
// #define DEBUG
// #define TEST

// Results returned from the decoder
class decode_results {
public:
  int decode_type; // NEC, SONY, RC5, UNKNOWN
  union { // This is used for decoding Panasonic and Sharp data
    unsigned int panasonicAddress;
    unsigned int sharpAddress;
  };
  unsigned long value; // Decoded value
  int bits; // Number of bits in decoded value
  volatile unsigned int *rawbuf; // Raw intervals in .5 us ticks
  int rawlen; // Number of records in rawbuf.
};

// Values for decode_type
#define NEC 1
#define SONY 2
#define RC5 3
#define RC6 4
#define DISH 5
#define SHARP 6
#define PANASONIC 7
#define JVC 8
#define SANYO 9
#define MITSUBISHI 10
#define SAMSUNG 11
#define LG 12
#define UNKNOWN -1

// Decoded value for NEC when a repeat code is received
#define REPEAT 0xffffffff

// main class for receiving IR
class IRrecv
{
public:
  IRrecv(int recvpin);
  void blink13(int blinkflag);
  int decode(decode_results *results);
  void enableIRIn();
  void resume();
private:
  // These are called by decode
  int getRClevel(decode_results *results, int *offset, int *used, int t1);
  long decodeNEC(decode_results *results);
  long decodeSony(decode_results *results);
  long decodeSanyo(decode_results *results);
  long decodeMitsubishi(decode_results *results);
  long decodeRC5(decode_results *results);
  long decodeRC6(decode_results *results);
  long decodePanasonic(decode_results *results);
  long decodeLG(decode_results *results);
  long decodeJVC(decode_results *results);
  long decodeSAMSUNG(decode_results *results);
  long decodeHash(decode_results *results);
  int compare(unsigned int oldval, unsigned int newval);

} 
;

// Only used for testing; can remove virtual for shorter code
#ifdef TEST
#define VIRTUAL virtual
#else
#define VIRTUAL
#endif

class IRsend
{
public:
  IRsend() {}
  void sendNEC(unsigned long data, int nbits);
  void sendSony(unsigned long data, int nbits);
  // Neither Sanyo nor Mitsubishi send is implemented yet
  //  void sendSanyo(unsigned long data, int nbits);
  //  void sendMitsubishi(unsigned long data, int nbits);
  void sendRaw(unsigned int buf[], int len, int hz);
  void sendRC5(unsigned long data, int nbits);
  void sendRC6(unsigned long data, int nbits);
  void sendDISH(unsigned long data, int nbits);
  void sendSharp(unsigned int address, unsigned int command);
  void sendSharpRaw(unsigned long data, int nbits);
  void sendPanasonic(unsigned int address, unsigned long data);
  void sendJVC(unsigned long data, int nbits, int repeat); // *Note instead of sending the REPEAT constant if you want the JVC repeat signal sent, send the original code value and change the repeat argument from 0 to 1. JVC protocol repeats by skipping the header NOT by sending a separate code value like NEC does.
  // private:
  void sendSAMSUNG(unsigned long data, int nbits);
  void enableIROut(int khz);
  VIRTUAL void mark(int usec);
  VIRTUAL void space(int usec);
}
;

// Some useful constants

#define USECPERTICK 50  // microseconds per clock interrupt tick
#define RAWBUF 100 // Length of raw duration buffer

// Marks tend to be 100us too long, and spaces 100us too short
// when received due to sensor lag.
#define MARK_EXCESS 100

#endif

örnek olarak arduniodaki ır remonte kuttupahesini çevirmek istersek nasıl olur bu yani demek istedigim ccs c kutuphanesine uyarlamak

RaMu

Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

aladdn07

ben zorla hiç kimseye bir şey yaptırmıyorum evet benim işim ve bu işi yapmam lazım yardımcı olacak arkadaşlardan yardım istedim yardım ederlerse ne ala yardım etmezlerse de çok teşekkür ederim.hepsine ama nasıl yapılacağı bunu yaparken neler yapmam gerektiğini anlatırlarsa çok faydalı lı olur hem benim için hemde başkaları için   


aladdn07


mehmet

Alıntı yapılan: aladdn07 - 06 Mart 2015, 23:57:44
ben zorla hiç kimseye bir şey yaptırmıyorum evet benim işim ve bu işi yapmam lazım yardımcı olacak arkadaşlardan yardım istedim yardım ederlerse ne ala yardım etmezlerse de çok teşekkür ederim.hepsine ama nasıl yapılacağı bunu yaparken neler yapmam gerektiğini anlatırlarsa çok faydalı lı olur hem benim için hemde başkaları için   
Çok basit:
Öncelikle yazım kurallarına dikkat
etmemiz gerekli.

Daha sonra da düşünelim; yabancı dillerden
tercüme nasıl yapılırsa, bizim işlerde aynı
şekilde tercüme edilir.
Zira, her iki tarafın iyi tanınması gerekli.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr