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

Dependencies:   mbed

Committer:
baba2357
Date:
Fri Mar 25 04:21:52 2016 +0000
Revision:
2:bed6b204e64c
Parent:
1:86d25c1c4bd5
Child:
3:6ab4e8e3aa02
Child:
5:df89be97e11a
????????????????????; pin_file.h??????????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
baba2357 1:86d25c1c4bd5 1 #ifndef SPI_NUCLEO_H
baba2357 1:86d25c1c4bd5 2 #define SPI_NUCLEO_H
baba2357 2:bed6b204e64c 3 #include "pin_file.h"
baba2357 2:bed6b204e64c 4 #include <string.h>
baba2357 2:bed6b204e64c 5
baba2357 1:86d25c1c4bd5 6 //SPI mbed
baba2357 1:86d25c1c4bd5 7 bool RR;
baba2357 1:86d25c1c4bd5 8 bool LR;
baba2357 1:86d25c1c4bd5 9 char speed_X;
baba2357 1:86d25c1c4bd5 10 char speed_Y;
baba2357 2:bed6b204e64c 11
baba2357 1:86d25c1c4bd5 12 //SPI NUCLEO
baba2357 1:86d25c1c4bd5 13 void spi_mbed();
baba2357 1:86d25c1c4bd5 14 void spi_nucleo();
baba2357 2:bed6b204e64c 15 void getGyro();
baba2357 2:bed6b204e64c 16 void spiInit();
baba2357 2:bed6b204e64c 17 typedef unsigned short u16;
baba2357 2:bed6b204e64c 18 long int angle;
baba2357 2:bed6b204e64c 19 double now_angle;
baba2357 2:bed6b204e64c 20 Serial pc(USBTX,USBRX);
baba2357 1:86d25c1c4bd5 21 #endif
baba2357 1:86d25c1c4bd5 22 void spiInit(){
baba2357 1:86d25c1c4bd5 23 from_mbed.format(16,3);
baba2357 1:86d25c1c4bd5 24 from_gyro.format(16,3);
baba2357 1:86d25c1c4bd5 25 from_mbed.frequency(1000000);
baba2357 1:86d25c1c4bd5 26 from_gyro.frequency(1000000);
baba2357 1:86d25c1c4bd5 27 }
baba2357 2:bed6b204e64c 28
baba2357 1:86d25c1c4bd5 29 void spi_mbed(){
baba2357 2:bed6b204e64c 30 u16 FM;
baba2357 1:86d25c1c4bd5 31 if(from_mbed.receive()){
baba2357 2:bed6b204e64c 32 FM=from_mbed.read();
baba2357 2:bed6b204e64c 33 RR=FM>>15;
baba2357 2:bed6b204e64c 34 LR=FM>>14;
baba2357 2:bed6b204e64c 35 if(RR==1){
baba2357 2:bed6b204e64c 36 } //右旋回の関数へ
baba2357 2:bed6b204e64c 37 else if(LR==1){
baba2357 2:bed6b204e64c 38 } //左旋回の関数へ
baba2357 2:bed6b204e64c 39 else if(FM>>13==1){ //コントローラーのX方向成分入力
baba2357 2:bed6b204e64c 40 speed_X=FM>>7;
baba2357 2:bed6b204e64c 41 speed_X=FM-128;
baba2357 2:bed6b204e64c 42 if(FM>>6==1) speed_Y=FM-128;
baba2357 2:bed6b204e64c 43 else speed_Y=FM;
baba2357 1:86d25c1c4bd5 44 }
baba2357 2:bed6b204e64c 45 else{
baba2357 2:bed6b204e64c 46 speed_X=FM>>7;
baba2357 2:bed6b204e64c 47 speed_Y=(-1)*speed_Y;
baba2357 2:bed6b204e64c 48 if(FM>>6==1) speed_Y=FM-128;
baba2357 2:bed6b204e64c 49 else speed_Y=FM;
baba2357 2:bed6b204e64c 50 }
baba2357 1:86d25c1c4bd5 51 }
baba2357 2:bed6b204e64c 52 }
baba2357 2:bed6b204e64c 53
baba2357 1:86d25c1c4bd5 54 void getGyro(){
baba2357 1:86d25c1c4bd5 55 u16 data;
baba2357 2:bed6b204e64c 56 if(from_gyro.receive()){
baba2357 2:bed6b204e64c 57 data = from_gyro.read();
baba2357 1:86d25c1c4bd5 58 if(data >> 15) angle = -(data & 0x7fff);
baba2357 1:86d25c1c4bd5 59 else angle = data & 0x7fff;
baba2357 1:86d25c1c4bd5 60 now_angle = (double)angle / 10;
baba2357 2:bed6b204e64c 61 }
baba2357 1:86d25c1c4bd5 62 }