Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of circle_war_ver_A_NUCLEO by
Diff: spi_nucleo.h
- Revision:
- 4:ef6f18eda3e2
- Parent:
- 3:6ab4e8e3aa02
- Child:
- 7:4f5cd0051db0
diff -r 6ab4e8e3aa02 -r ef6f18eda3e2 spi_nucleo.h
--- a/spi_nucleo.h Tue Mar 29 12:36:50 2016 +0000
+++ b/spi_nucleo.h Thu Mar 31 00:39:06 2016 +0000
@@ -4,25 +4,29 @@
#include <string.h>
//SPI mbed
-int FM=0;
-bool RR;
-bool LR;
-char speed_X;
-char speed_Y;
+bool RR=0;
+bool LR=0;
+int speed_X;
+int speed_Y;
bool Xpm=0;
bool Ypm=0;
-
//SPI NUCLEO
void spi_mbed();
void spi_nucleo();
void getGyro();
void spiInit();
-typedef unsigned short u16;
+typedef unsigned u16;
+u16 FM;
long int angle;
double now_angle;
Serial pc(USBTX,USBRX);
-#endif
-void spiInit(){
+void spiInit();
+void spi_mbed();
+void getGyro();
+#endif
+
+void spiInit()
+{
from_mbed.format(16,3);
from_gyro.format(16,3);
from_mbed.frequency(1000000);
@@ -30,45 +34,50 @@
}
void spi_mbed()
-{
+{
if(from_mbed.receive()) {
+ RR=0;
+ LR=0;
FM=from_mbed.read();
- RR=FM>>15;
- LR=FM>>14;
Xpm=FM>>13;
- Ypm=FM>>6;
- if(RR==1) {
+ Ypm=(FM&0x40)>>6;
+ if(FM>>15==1) {
+ RR=1;
} //右旋回の関数へ
- else if(LR==1) {
+ else if(FM>>14==1) {
+ LR=1;
} //左旋回の関数へ
else if(Xpm==1) { //コントローラーのX方向成分入力
speed_X=FM&0x1F80;
speed_X=speed_X>>7;
- if(Ypm==1) speed_Y=FM&0x3F;
+ if(Ypm==0) speed_Y=FM&0x3F;
else {
speed_Y=FM&0x3F;
- speed_Y=speed_Y*(-1);
+ speed_Y=(-1)*speed_Y;
}
}
else {
speed_X=FM&0x1F80;
speed_X=speed_X>>7;
speed_X=(-1)*speed_X;
- if(Ypm==1) speed_Y=FM&0x3F;
+ if(Ypm==0) speed_Y=FM&0x3F;
else {
speed_Y=FM&0x3F;
- speed_Y=speed_Y*(-1);
+ speed_Y=(-1)*speed_Y;
}
}
}
}
-
-void getGyro(){
- u16 data;
- if(from_gyro.receive()){
+
+void getGyro()
+{
+ int data;
+ if(from_gyro.receive()) {
data = from_gyro.read();
- if(data >> 15) angle = -(data & 0x7fff);
+ if(data >> 15) angle = -(data & 0x7fff);
else angle = data & 0x7fff;
now_angle = (double)angle / 10;
- }
+// pc.printf("%d\r\n",data);
}
+}
+
