PICでモータードライバーTA7291Pを使う

PICでモータードライバーTA7291Pを動かしてみます。
(使用したPICはPIC16F628A)

組み立てたツインモーターギヤボックス
(左右のタイヤを逆に動かしています)

使用するモータードライバーはTA7291P
ピンアサインは以下のようになっています。
http://kousaku-kousaku.blogspot.jp/2008/06/arduino-dcta7291p.html

モータードライバを使って、正転→ブレーキ→逆転→ブレーキを
1秒おきに繰り返すプログラムを書いた。

#include<htc.h>
#include<pic.h>
//#include<delay.c>
//#define _XTAL_FREQ 4000000

__CONFIG(
        MCLRE_OFF  //内部リセット回路を使用
        & PWRTE_ON  //パワーアップタイマを使用
        & BOREN_OFF  //ブラウンアウトリセットを使用しない
        & CP_OFF  //プログラムをプロテクトしない
        & WDTE_OFF  //ウォッチドッグタイマを使わない
        & FOSC_INTOSCCLK //内部クロック生成器を使用
);

    __IDLOC(628A);

//関数プロトタイプの宣言
static void pic_init();
static void Delay_ms(unsigned char ms);
static void Delay_1ms();

// ================ メイン処理 ======================
main()	{
	pic_init();			// PICの初期化

	while(1) {
                //正転
                RB2=1;
                RB3=0;
                //DelayMs(1000);
                Delay_ms(1000);
		Delay_ms(1000);
                Delay_ms(1000);
		Delay_ms(1000);
                Delay_ms(1000);
                //ブレーキ
                RB2 = 1;
		RB3 = 1;
                //DelayMs(1000);
		Delay_ms(1000);
		Delay_ms(1000);
                Delay_ms(1000);
		Delay_ms(1000);
                Delay_ms(1000);
                //ブレーキ
                RB2 = 0;
		RB3 = 1;
                //DelayMs(1000);
		Delay_ms(1000);
		Delay_ms(1000);
                Delay_ms(1000);
		Delay_ms(1000);
                Delay_ms(1000);
                //ブレーキ
                RB2 = 1;
		RB3 = 1;
                //DelayMs(1000);
		Delay_ms(1000);
		Delay_ms(1000);
                Delay_ms(1000);
		Delay_ms(1000);
                Delay_ms(1000);

        }
}

// =============== PICの初期化 ======================
static void pic_init() {
	//GP = 0;
	//CMCON = 0x07;		// コンパレータ未使用
	//ANSEL = 0x00;		// AN未使用
	//TRISB = 0x0F;		// GP4,5:out
        TRISB = 0x00;
}


// =============== 1mS×ms ウェイトルーチン =======
static void Delay_ms(unsigned char ms) {
	unsigned char c;
	for (c=ms ; c>0 ; c--) {
		Delay_1ms();
	}
}

// =============== 1mSウェイトルーチン ============
static void Delay_1ms() {
	unsigned int cnt;
	unsigned int i;
	cnt = 76;

	for	(i=0 ; i<cnt ; i++) {
		NOP();
	}
}
// ========================== ここまで ==============================
 

10番ピンからの出力が出なくて苦しんだ。
原因は、モーター電源側のGNDをPIC側のGNDとつないでなかったこと。
すべてのGNDは接続されていなければならない。