Arduino IDE #ifdef


13

Saya menggunakan Arduino IDE saya untuk mengunggah sketsa saya ke Arduino atau ATTiny atau ATmega328. Seperti yang Anda ketahui, setiap perangkat dapat memiliki pinout yang berbeda. Apakah kompiler Arduino mendukung ifdef, tergantung pada board saya terhubung?

Sebagai contoh

#ifdef Attiny85
       a=0; b=1; c=2;
#else
       // arduino
       a=9; b=10; c=11;
#endif

Jawaban:


13

Iya. Berikut ini sintaksnya:

#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__)
    //Code here
#endif

Anda juga dapat melakukan sesuatu seperti ini untuk Mega:

#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    //Code here
#endif

Dengan asumsi implementasi untuk ATtiny sudah benar, kode Anda harus seperti ini:

#if defined (__AVR_ATtiny85__)
       a=0; b=1; c=2;
#else
       //Arduino
       a=9; b=10; c=11
#endif

Dalam Arduino.h, __AVR_ATtiny85__digunakan (modal T). Tidak yakin apakah itu membuat perbedaan.
geometrikal

2
atau menggunakan 1,5. + IDE Anda dapat menguji terhadap jenis papan yang Anda bangun. Lihat Arduino-IDE-1.5 --- spesifikasi pihak ke-3-Perangkat Keras . Contoh "#jika didefinisikan (ARDUINO_AVR_UNO)" atau ARDUINO_AVR_MEGA2560 atau ARDUINO_AVR_LEONARDO, dll ...
mpflaga
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.