FUJISEKKを作る。
 3Fase120degdriver.c
#include "PE_Types.h"
#include "IO_Map.h"
#include "3Fase120degdriver.h"
 
/* 3Fase Motor Driver */
/* 2013/6 Witten By FujiOomagari */
/* GLOVAL */
char StateMot;
int Timer_int;
/* PWM not witten */
char motor_driver_init(char max_speed){
    threefase120deggen();
    Timer_int=      max_speed;
    StateMot=0;
    //ptcinit
}
/* stop */
char motor_driver_end(void){
;
}

/* 3Fase 120Deg Drive Table */
/*11Z00Z 出力*/
/*111000 極性 180Deg*/
/*001001 3ST*/

#define DriveA  0x0038
#define Newtral 0x0009
unsigned char Pattern[6];

void threefase120deggen(void){
    unsigned int wk;
    int a,b;
    for (a=0;a<6;a++){

        wk=DriveA;
            wk =wk<<6;
        wk=wk | DriveA;
        wk=wk>>a;
//        printf("wk %1d =%X \n",a,wk     );
        Pattern[a]=0;
        for(b=0;b<3;b++){
            Pattern[a]=Pattern[a] | wk&0x01;
            wk=wk>>2;
            Pattern[a]=Pattern[a]<<1;
//        printf("wk %1d =%X \n",b,Pattern[a] );

        }
        wk=Newtral;
                wk =wk<<6;
            wk=wk | Newtral;
            wk=wk>>a;
//        printf("wkN %1d =%X \n",a,wk);
        for(b=0;b<3;b++){
            Pattern[a]=Pattern[a] | wk&0x01;
            wk=wk>>2;
            Pattern[a]=Pattern[a]<<1;
        }
        Pattern[a]=Pattern[a]<<1; // Bit7~2
    }
}


/* StateMot 0で終了 */
char motor_driver( void){
    char a,fase;
    StateMot=1;
    PTCD=0x80;
    tslp_tsk(Timer_int);
    while(StateMot){
        for (StateMot=2;StateMot<8;StateMot++){
            fase=Pattern[StateMot-2];
            PTCD=(fase>>2) | 0x80; //LL64
            tslp_tsk(Timer_int);
        }
    }
}

3Fase120degdriver.h
char motor_driver_init(char max_speed);
char motor_driver(void);
void threefase120deggen(void);
char motor_driver_end(void);