「SP2」の編集履歴(バックアップ)一覧はこちら
「SP2」(2008/04/29 (火) 00:54:48) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
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;
}
}
}
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;
}
}
}