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関数