Arduino IDE #ifdef (Čeština)

Pomocí svého Arduino IDE buď nahraji svoji skicu 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 

Odpověď

Ano. Zde je syntaxe:

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

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

#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //Code here #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 

Komentáře

  • V Arduino.h se používá __AVR_ATtiny85__ (kapitál 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 . Příklad " #if defined (ARDUINO_AVR_UNO) " nebo ARDUINO_AVR_MEGA2560 nebo ARDUINO_AVR_LEONARDO atd …

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *