[H8-ML(2974)] Re: H8プログラム開発の質問
From: suzuki@xxxxxxxxxx (鈴木 政之)
Date: 2003年03月25日(火)19時47分49秒
金沢様
重ねてのご回答、大変感謝しております。
言葉の使い方もままならず、ご迷惑をおかけしております。

さて、モーター&ドライバですが、
日本パルスモータ社のPFC55-48B04というモータと
BCD4012Bというドライバを用いて行おうとしています。
このドライバーの取扱説明書にあります、CCWの+-とCWの+-の入力部に
信号入力(パルス)とあったものですから
以下のようなプログラムでパルスを発生したものを
H8の出力ポートとこのドライバを接続してパルスを
入力と考えた次第です。
これは、正しいことかどうかご判断賜れましたら幸いに存じます。

----------------------------------------------------------
/* CCW(左回り・反時計回り)初期化 ************************************/
void ccw_init(void){
	/* トグルモード出力 */
	ITU.TMDR.BYTE = 0x98;	/* 10011000 通常モード */
	ITU1.TIOR.BYTE = 0xBB;	/* 10111011 トグル出力 */
	ITU1.TCR.BYTE = 0xA3;	/* GRAコンペアマッチ clock 1/8 10100011 */
	ITU1.GRA = 0xfffe;	/* (FFFF:65535:21.333msec) */
	ITU.TSTR.BIT.STR1 = 0;	/* カウント停止状態 */
	PADDR = 0xff;		/* portA出力に設定*/
	return;
}

/* CCW(左回り・反時計回り)パルス発生 ************************************/
/* (パル数を与えてこの関数を呼び出す。)*/
ccw(int x){
	/* CCW側の(TIOCA1:14ポート) */
	ITU.TSTR.BIT.STR1 = 1;		/* カウント開始 */

	x = x * 2 - 1;
	while(x != 0){
		ITU1.GRA = 0x1E00;	/* GRAを0x1E00 7680(2.5msec)に設定 */
		do{			/* TCNT = GRAになるまで待つ */
		}while(ITU.TISRA.BIT.IMFA1 == 0);
		x = x - 1;
		ITU.TISRA.BIT.IMFA1 = 0;	/* 検知フラグを戻して再開 */
	}
	ITU.TSTR.BIT.STR1 = 0;		/* ITU1 TCNTカウント終了 */
	ITU1.GRA = 0xFFFE;		/* GRAを65534に設定 */
	return;
}
----------------------------------------------------------


>>コントローラのCCWとCWに入り口に金沢様の教えてくださいました
>>トグル出力のパルスを入力してコントロールいたします。
>
>これ違う CW/CCWは回転方向を決めるもので パルスを入れるものでない
>コントローラにクロック入力は無いのですか そこにトグル出力を入れます
>
>
>********************************************	  
>	〒216-0015  川崎市宮前区菅生6-9-2
>	Tel	     044-977-6886
>	Fax	     044-977-2384
>	E-mail       kanazawa@xxxxxxxxxxxxx
>                       金沢政夫
>********************************************

----
鈴木 政之  suzuki@xxxxxxxxxx

スレッド概略
[2943(R)](起点)
 └[2972(U)]
   └[表示中]
     └[2975(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]