1#include<iostream>23#defineDEF_A"This is A.\n"4#defineDEF_B"This is B.\n"5#defineDEF(X) DEF_##X67intmain()8{9 std::cout <<DEF(A);10 std::cout <<DEF(B);11}
ハード依存の話も入ってきますが・・・
Arduinoの標準関数にdigitalRead()というものがあります。
int digitalRead(int pin)
引数で指定した番号のピンの電圧を読み取りHIGH or LOWを返却します。
現在、この関数の機能の高速化を試みていまして、レジスタを直接制御する文に置き換えることで無駄な処理が省けるようです。
int val = digitalRead(2); → int val = PIND & _BV(2);
しかし、この方法をとるとソースの可読性が損なわれる他、これまで作ってきた関数についても大規模な改修が必要になります。そこでマクロを用いてdigitalRead()をレジスタ制御の文に置換できないのかと考えました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/08 16:55