私はプロジェクトに取り掛かりました.Arduinoライブラリを使用することを防ぐために、余分な "Junk"が付属しており、コアAVRライブラリほど高速ではないため、使用しないようにしています。AVR Micros and Millis
私の質問は、Arduinoのmillis()およびmicros()関数に相当するAVRライブラリがある場合、または自分のライブラリを作成する必要がある場合です。
私はタイマーとISRを使って値を増やしてダニを追跡することができますが、必要がなければホイールを再作成する理由を理解しています。
そうではありません.... ;-)すべてのタイマーは何かのために使用できるので意味がありますあなたが指摘したようなカスタム。私が持っている他の1つの質問は、ISRが基本的に常に発砲し、それを防止する方法があるので、残りのコードをブロックするために、タイマーのための非常に小さな解決策を得ようとしないでしょうか? –
"非常に小さい解像度";を定義します)しかし、一般的には、実際に必要な解像度に解像度を制限するのが最善です。 ISRは、主な実行パスと潜在的に他の割り込み(割り込みの優先順位に応じて)をブロックします。これは、ISRができるだけ少ない命令を含むべき理由です。 10MHzでは、1マイクロ秒の実行速度で約10命令が得られます。だから1usの解像度のようなものを目指すことは非現実的だろう。 ISRが短く保たれている場合、10usタイマーインターバルは妥当に聞こえる。おそらく20〜30がISRに失われるかもしれない、タイマーティックごとに100の命令があります。 –
注意が必要な他の割り込み(USART、TWIまたは他のタイマ)がある場合、私は100usを上回らず、やはり1msはいくらか安全です。 –