ATmega328Pでは、次の2つの承認のどちらが効率的ですか?Arduinoで整数を2文字に分割する最も効率的な演算はどれですか?
unsigned int value;
unsigned char char_high, char_low;
char_high = value>>8;
value = value<<8;
char_low = value>>8;
OR
unsigned int value;
unsigned char char_high, char_low;
char_high = value>>8;
char_low = value & 0xff;
どのように測定できますか?私はプログラミングに弱いです。 –
しかし、あなたが考えることができる多くの異なる方法を試してみて、どれだけの時間がかかるかを測定します。 Arduinoの "loop()"関数では、テストコードを何度か呼び出すfor()ループがあります。 for()ループがmicros()から戻り値を保存する前に、それをmicros()の値から引きます。シリアルポートで差を出力し、シリアルモニタで時間を表示します(IDEを使用していると仮定します)。 BTW - ATmegaチップがどのエンディアンであるかを知っている限り、ユニオンは最高の状態で動作するはずです。 –