September 12, 2011

mbed tips in time and interrupts

mbed で HTTP Clock [twitter.com] を作ったときの時間管理や割り込み関係の tips をメモ。
  • Timer [mbed.org]
    Timer クラスのインスタンスは複数作れるが、ハードウェアタイマとしては同じタイマを参照しているようで、違うインスタンスでもタイマ値が同じになっている。reset() とかも隣のインスタンスに影響してしまうかも。コンパイル時に何か警告してほしいなぁ。LPC1768 だとタイマは4つあるっぽいが、mbed コンパイラではどういう振り分けになっているのだろう。
  • wait [mbed.org]
    wait() は float 受けられるし、wait_ms() や wait_us() もある。
  • Ticker [mbed.org]
    タイマー割り込みは多重割り込みしようと思っても、何も言われずに回避されるっぽい。割り込みハンドラに割り込み間隔より長い wait() を入れてみたら、単に多重割り込み側は呼ばれなかった。違う IRQ# なら多重割り込みできてしまったりするのだろうか。
  • time [mbed.org] set_time() で RTC に値を入力できるので大変便利。だが、精度が1秒しかでない。