新部内対抗A班 / Mbed 2 deprecated circle_war_ver_A_NUCLEO

Dependencies:   mbed

spi_nucleo.h

Committer:
username16248
Date:
2016-04-01
Revision:
6:bb86e2999be0
Parent:
5:df89be97e11a
Child:
7:4f5cd0051db0

File content as of revision 6:bb86e2999be0:

#ifndef SPI_NUCLEO_H
#define SPI_NUCLEO_H
#include "pin_file.h"
#include <string.h>

//SPI mbed
bool RR;
bool LR;
char speed_X;
char speed_Y;

//SPI NUCLEO
void spi_mbed();
void spi_nucleo();
void getGyro();
void spiInit();
typedef unsigned short u16;
long int angle;
double now_angle;
Serial pc(USBTX,USBRX);
#endif
void spiInit(){
    from_mbed.format(16,3);
    from_gyro.format(16,3);
    from_mbed.frequency(1000000);
    from_gyro.frequency(1000000);
}

void spi_mbed(){
    u16 FM;
    if(from_mbed.receive()){
    FM=from_mbed.read();
    RR=FM>>15;        
    LR=FM>>14;
        if(RR==1){
            } //右旋回の関数へ
        else if(LR==1){
            } //左旋回の関数へ
        else if(FM>>13==1){ //コントローラーのX方向成分入力
            speed_X=FM>>7;
            speed_X=FM-128;
            if(FM>>6==1) speed_Y=FM-128;
            else speed_Y=FM;
                }
        else{
            speed_X=FM>>7;
            speed_Y=(-1)*speed_Y;
            if(FM>>6==1) speed_Y=FM-128;
            else speed_Y=FM;
            }
        }
    }
        
void getGyro(){
    u16 data;
    if(from_gyro.receive()){
        data = from_gyro.read();
        if(data >> 15) angle = -(data & 0x7fff);
        else angle = data & 0x7fff;
        now_angle = (double)angle / 10;
        }
    }