0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ArduinoにおけるATtiny1616とATtiny1617のボードタイプは何だろう?

Posted at

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'、このマクロは定義されていません。

スクリーンショット 2020-08-10 21.52.55.png

-mmcu=aattiny1617 ってありますね。でもうまくいきませんでした。

  #if defined(__attiny1617__)  
    Serial.println("ATtiny1617");
  #else

ATtiny1617がシリアルに出力されません。

ネット情報より2

https://stackoverrun.com/ja/q/3740654
スクリーンショット 2020-08-10 22.03.40.png

MegaTinyCore系のファイルが入っているフォルダに定義ファイルとかのヒントがありそう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?