今回はご存じの方も多いとは思いますが、
マイコンのポート出力の小技をお伝えします。
マイコンのポートを個々に操作したい場合に下記のようにdefineしておくと
マクロのように実行するだけでポートのON/OFFが可能となります。
//Motor1 CCW/CW OutPort
#define M1_ON LATA|= 0x0004
#define M1_OFF LATA&=~0x0004
#define M1_ON LATA|= 0x0004
#define M1_OFF LATA&=~0x0004
16進数表現の0x04はビットでは0b00000100となります。
この式で3番目のビット、RA2のON/OFFができます。
ONする場合は下記のように記述します。
M1_ON;
OFFする場合は下記のように記述します。
M1_OFF;
また、dsPICやPIC16F等を含めPICマイコンで出力を行う場合は
PORTでなくLATで出力をした方がよいようです。
高速で出力を変化させる場合、
PORTだと意図した出力にならず上手く動かないということが多々あります。
LCDの制御やモータ制御でこの罠?にハマりました笑