Otázka:
Arduino IDE #ifdef
PhillyNJ
2014-09-13 17:38:20 UTC
view on stackexchange narkive permalink

Používám své Arduino IDE buď k nahrání náčrtu do Arduina nebo ATTiny nebo ATmega328. Jak víte, každé zařízení může mít jiný pinout. Podporuje kompilátor Arduino ifdef v závislosti na desce, ke které jsem připojen?

Například

  #ifdef Attiny85 a = 0; b = 1; c = 2; #else // arduino a = 9; b = 10; c = 11; #endif  
Jeden odpovědět:
Anonymous Penguin
2014-09-13 17:50:31 UTC
view on stackexchange narkive permalink

Ano. Zde je syntaxe:

  #if defined (__ AVR_ATmega328P__) || definované (__ AVR_ATmega168__) // Kód zde # endif  

Něco takového můžete udělat i pro Mega:

  #elif defined (__ AVR_ATmega1280__) || definované (__ AVR_ATmega2560__) // Kód zde # endif  

Za předpokladu, že implementace pro ATtiny je správná, měl by váš kód vypadat takto:

  #if defined (__AVR_ATtiny85__) a = 0; b = 1; c = 2; #else // Arduino a = 9; b = 10; c = 11 # endif  
V `Arduino.h` se používá` __AVR_ATtiny85__` (velké `T`). Nejste si jisti, jestli to má nějaký rozdíl.
alternativně pomocí 1.5. + IDE můžete otestovat proti typu desky, kterou stavíte. Viz [Arduino-IDE-1.5 --- Specifikace hardwaru třetí strany] (https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification#boardstxt ). Příklad „#if defined (ARDUINO_AVR_UNO)“ nebo ARDUINO_AVR_MEGA2560 nebo ARDUINO_AVR_LEONARDO atd.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...