GR-SAKURAおよびGR-CITRUSのArduinoライブラリで使用されるタイマリソースについてまとめる。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関数