Arduino UNO R4備忘録
・システムタイマー
「AGTタイマー0」で1ms割り込み。
volatile uint32_t agt_time_msをカウントアップ。
・「agt_time_ms」がmillis()の元。
・micros()はこの値にAGTタイマーそのものの値を加味
して経過時間を得ている
・delay()もこの値を使ってる。
・delayMicroseconds()はUNO R3と同じでソフトウェアタイマー。
void delayMicroseconds(unsigned int us)
UNO R3のように14bitという制限はなさそう。
・割込有効/禁止はこんな命令に
#define interrupts() __enable_irq()
#define noInterrupts() __disable_irq()
そして、ARMマイコンの機械語では、
__STATIC_FORCEINLINE void __enable_irq(void)
__ASM volatile ("cpsie i" : : : "memory");
__STATIC_FORCEINLINE void __disable_irq(void)
__ASM volatile ("cpsid i" : : : "memory");
「CPSIE I」で割込許可。
「CPSID I」で割り込み禁止。
※Z80のように「EI」「DI」でエエやんっと思っちゃいます。
長い文字、キライです。
・USBではなくD1端子にシリアル出力する「Serial1.print」。
残念ながらバッファリング処理してない。
文字出力が終わるまで、元ルーチンに戻ってこない。
| 固定リンク
「Arduino UNO R4」カテゴリの記事
- Arduino UNO R4 minimaに12MHz水晶を(2025.06.09)
- Arduino UNO R4で2つの1Hz信号の位相変化を見る(2025.06.06)
- UNO R4はanalogWrite(n,128)でデュティー50%の方形波が出るぞ(2025.06.03)
- Arduino UNO R4 minima 電源供給方法でクロックが変わる#6(2025.06.02)
- Arduino UNO R4 minima 電源供給方法でクロックが変わる#5(2025.06.01)
コメント