ATtiny1616 , ATtiny1617 のボードタイプは?
ArduinoでCPUによって、コンパイル条件を変更する時に、#if defined 〜 #endif文を使用して
#if defined(__AVR_MEGA__)
Serial.println("MEGA");
#endif
と記述します。
ATtiny1616 , ATtiny1617 のボードタイプは何になるのかなと調べてみました。
結果
ATtiny1617は、
#if defined(__AVR_ATtinyxy7__)
Serial.println("hello ATtiny1617");
#else
Serial.println("etc");
#endif
で行けます。
追加情報として、これも真になってしまい、ATmega系と同じ扱いされてしまいます。分けたいときはパッチが必要です。
#if defined(__AVR_MEGA__)
Serial.println("MEGA");
#endif
ATtiny1616は、
#if defined(__AVR_ATtinyxy6__)
Serial.println("hello ATtiny1616");
#else
Serial.println("etc");
#endif
ネット情報より1
https://gcc.gnu.org/onlinedocs/gcc-8.3.0/gcc/AVR-Options.html#AVR-Built-in-Macros
が役に立ちました。
AVR_Device
設定 -mmcu = デバイスデバイスの名前を反映するこの組み込みマクロを定義します。例えば、-mmcu = atmega8内蔵マクロ定義__AVR_ATmega8__、-mmcu = attiny261a定義 __AVR_ATtiny261A__など
組み込みマクロの名前は、AVRユーザーマニュアルにあるように、Deviceがデバイス名であるスキームに従います。差 デバイス組み込みマクロでデバイスに AVR_Device-mmcu = デバイス 後者は常に小文字です。
場合は、デバイスは、デバイスが、 'のような唯一のコアアーキテクチャではありませんavr51'、このマクロは定義されていません。
-mmcu=aattiny1617 ってありますね。でもうまくいきませんでした。
#if defined(__attiny1617__)
Serial.println("ATtiny1617");
#else
ATtiny1617がシリアルに出力されません。
ネット情報より2
https://stackoverrun.com/ja/q/3740654
MegaTinyCore系のファイルが入っているフォルダに定義ファイルとかのヒントがありそう。