SP2は,サーボ制御プログラムである. サーボは,10~20msec周期のパルス信号のデューディー比によってサーボの回転角を指定する.このプログラムでは,タイマーWを使いパルスを発生させ,GRAにより周期を作り出し,GRBを用いてデューティー比を調整することによって,サーボを制御する.
void int_timerw(){ if(TW.TSRW.BIT.IMFA){ TW.TSRW.BIT.IMFA = 0; //IMFAフラグをクリア selectCH = 0; IO.PDR5.BYTE |= 0x01; // ch2 1出力 TW.GRB = dutyCH2; } if(TW.TSRW.BIT.IMFB){ TW.TSRW.BIT.IMFB = 0; //IMFBフラグをクリア selectCH++; switch(selectCH){ case 1: IO.PDR5.BYTE &= ~0x01; // ch2 0出力 IO.PDR5.BYTE |= 0x02; // ch3 1出力 TW.GRB = TW.TCNT + dutyCH3; break; case 2: IO.PDR5.BYTE &= ~0x02; // ch3 0出力 break; } } }