動画はこちら
@@@@@@@@@@@@@@@@@@
例題1:ステッピングモータ512650を200ステップ(1回転)動かすプログラム
int main (void)
{
volatile int i; //遅いメモリに割り当てる、インターバルの時間を変えないようにする
register int j; //速いメモリに割り当てる、繰り返し処理をできるだけ速く済ますため
const unsigned short MainCycle = 50; //50Hzに保つ
Init(MainCycle);
LPC_IOCON->PIO2_4=0x0d0;//PIO2_4レジスタをIOポートとして使うための設定。2進数で00011010000を代入、
//3,4ビット目を10にしてプルアップ抵抗を使うモードに、10ビット目を0にして通常の入出力IOポートとして設定
//6,7ビット目は元々11なのでその値をそのまま維持
LPC_IOCON->PIO2_5=0x0d0;//PIO2_5レジスタをIOポートとして使うための設定。2進数で00011010000を代入、
//3,4ビット目を10にしてプルアップ抵抗を使うモードに、10ビット目を0にして通常の入出力IOポートとして設定
//6,7ビット目は元々11なのでその値をそのまま維持
LPC_GPIO2->DIR |= (1<<4);//GPIO2DIRレジスタの4ビット目だけを1にして、PIO2_4を出力IOポートに設定
LPC_GPIO2->DIR |= (1<<5);//GPIO2DIRレジスタの4ビット目だけを1にして、PIO2_5を出力IOポートに設定
LPC_GPIO2->DATA &=~(1<<4);//PIO2_4を0V(low) 時計回り
//LPC_GPIO2->DATA |=(1<<4);//PIO2_4を0V(higt) 反時計回り
while(1){
if(getSW()==1){ //ボタンを押したらパルスを200回送る
LED(1); //ステッピングモータが回っている間緑を点灯
for(j=0; j<200; j++){ //200回パルスを送る
LPC_GPIO2->DATA |=(1<<5); //PIO2_5を3.3V(high)にする
for(i=0; i<5510; i++){} //for文をループさせることでインターバル時間を作る
LPC_GPIO2->DATA &=~(1<<5); //PIO2_5を0V(low)にする
for(i=0; i<5510; i++){} //for文をループさせることで1msのインターバル時間を作る
}
LED(0); //ステッピングモータが止まったらLEDを消す
}
}
}



