GR-SAKURA/GR-CITRUSのタイマリソース

GR-SAKURAおよびGR-CITRUSArduinoライブラリで使用されるタイマリソースについてまとめる。Arduino環境でRXマイコンのタイマリソースを直接使用する場合、Arduinoライブラリとの競合に注意する。

GR-ROSEについてはこちら ↓
GR-ROSEのタイマリソース - 滴了庵日録

(1) PWM出力

ServoクラスおよびanalogWrite関数で使用されるタイマリソースは以下の通り。詳細はisHardwarePWMPin関数, setPinModeHardwarePWM関数, setPinModeSoftwarePWM関数のソースを参照。

GR-SAKURA
ピン番号 使用するタイマリソース 備考
0 TPU3 GR-CITRUSと異なる
1 MTU1 GR-CITRUSと異なる
2 TPU3
3 TPU3
4 MTU4
5 TPU4
6 TPU0
7 TPU0
11 MTU3
上記以外 TPU2 ソフトウェアPWM, 割り込み使用
GR-CITRUS
ピン番号 使用するタイマリソース 備考
0 MTU1 GR-SAKURAと異なる
1 TPU3 GR-SAKURAと異なる
5 TPU4
7 TPU0
8 TPU0
11 MTU3
上記以外 TPU2 ソフトウェアPWM, 割り込み使用

また、tone関数はピン番号にかかわらずソフトウェアPWMであり、TPU2を使用する。

(2) PWM以外

ライブラリ GR-SAKURA GR-CITRUS
millis関数
micros関数
delay関数
delayMicroseconds関数
CMT0 CMT0
Ethernetライブラリ CMT1 非対応
SoftwareSerialクラス CMT2 ※1 CMT2 ※1
MsTimer2クラス TPU1 TPU1
WavMp3pクラス MTU0 MTU1
attachIntervalTimerHandler関数 TPU5 TPU5
attachCyclicHandler関数 CMT0 ※2 CMT0 ※2

※1: TPU5を使用するようにも変更できる。 (ライブラリのビルドが必要)
※2: millis関数に依存

タイマリソース別まとめ

MTU0 WavMp3pクラス(SAKURA)
MTU1 ハードウェアPWM, WavMp3pクラス(CITRUS)
MTU2 未使用
MTU3 ハードウェアPWM
MTU4 ハードウェアPWM(SAKURA)
MTU5 未使用
TPU0 ハードウェアPWM
TPU1 MsTimer2クラス
TPU2 ソフトウェアPWM
TPU3 ハードウェアPWM
TPU4 ハードウェアPWM
TPU5 attachIntervalTimerHandler関数
TPU6~11 未使用
CMT0 システムタイマ
CMT1 Ethernetライブラリ(SAKURA)
CMT2〜3 未使用
TMR0〜1 未使用

ハードウェアPWM: ServoクラスおよびanalogWrite関数
ソフトウェアPWM: ServoクラスおよびanalogWrite関数, tone関数
システムタイマ: millis関数, micros関数, delay関数, delayMicroseconds関数