Käytän Arduino IDE: täni joko luonnoksen lataamiseen Arduinoon tai ATTinyyn tai ATmega328: een. Kuten tiedät, jokaisella laitteella voi olla erilainen pinout. Tukeeko Arduino-kääntäjä ifdef
riippuen piirilevystä, johon olen yhteydessä?
Esimerkiksi
#ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif
Vastaa
Kyllä. Tässä on syntaksi:
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) //Code here #endif
Voit myös tehdä jotain tällaista Megalle:
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //Code here #endif
Olettaen, että ATtiny: n toteutus on oikea, koodisi tulisi olla seuraava:
#if defined (__AVR_ATtiny85__) a=0; b=1; c=2; #else //Arduino a=9; b=10; c=11 #endif
Kommentit
- Kohdassa
Arduino.h
käytetään__AVR_ATtiny85__
(isot kirjaimetT
). Etkö ole varma, onko sillä mitään eroa. - Vaihtoehtoisesti käyttämällä 1.5. + IDE: tä voit testata rakentamaasi levytyyppiä. Katso Arduino-IDE-1.5 — kolmannen osapuolen laitteistomääritys . Esimerkki " # jos määritelty (ARDUINO_AVR_UNO) " tai ARDUINO_AVR_MEGA2560 tai ARDUINO_AVR_LEONARDO jne …