#include "mbed.h"
DigitalOut myled0(LED1);
DigitalOut myled1(LED2);
DigitalOut myled2(LED3);

SPI Step(p11,p12,p13);//msoi,miso,sclk
DigitalOut css(p14);


void L6470_send(uint8_t data){
    
    css = 0; 
    Step.write(data);
    css = 1;
}

void L6470_setup(){
    
    //最大回転スピード
    L6470_send(0x07);
    L6470_send(0x08);
    L6470_send(0x17);
    
    //モーター停止中電圧
    L6470_send(0x09);
    L6470_send(0x50);
    //モーター定速回転時
    L6470_send(0x0a);
    L6470_send(0xb0);
    //加速中電圧
    L6470_send(0x0b);
    L6470_send(0x70);
    //減速中電圧
    L6470_send(0x0c);
    L6470_send(0x70);
    
    //フルハーフ
    L6470_send(0x16);
    L6470_send(0x02);
}

void setup(){
    //
    L6470_send(0x00);    
    L6470_send(0x00);
    L6470_send(0x00);
    L6470_send(0x00);
    
    //
    L6470_send(0xc0);
    
    L6470_setup();
    
    wait_ms(1000);
    
}


int main() {

    myled0 = 0;
    myled1 = 0;
    css = 1;
    Step.format(8, 3);
    //Step.frequency(500000);//1MHz 
    
    setup();
    
    
    
    L6470_send(128+64+16);//homeset
    
    wait(1);
    L6470_send(64+16+1);//run
    L6470_send(0x00);
    L6470_send(0xa0);
    L6470_send(0x00);
    
    wait(5);
    L6470_send(128+32+16+8);
    wait(0.1);
    

    
    while(1) {
        

    
    

    
    }
}
