test2017-1-13

Dependencies:   AT24C1024 DMX-STM32 mbed

Revision:
7:813cdaad1200
Parent:
6:2a9e0228f81d
Child:
8:2e68b9de685d
--- a/main.cpp	Wed Apr 05 12:40:41 2017 +0000
+++ b/main.cpp	Tue Apr 25 12:20:47 2017 +0000
@@ -3,10 +3,10 @@
 #include "AccelStepper.h"
 #include "DMX.h"
 
-//モータ制御基板の通し番号を設定してください  初期設定は1です
-#define BoardNumber 1
+//モータ制御基板の通し番号を設定してください  初期設定は1です 0は使わないでね。
+#define BoardNumber 8
 
-//Ticker to;
+Ticker to;
 
 Timer t;
 DigitalOut dmxEnable(D8);   //基本L(レシーブ)に固定します
@@ -14,6 +14,7 @@
 
 I2C         i2c(D4, D5);      // SDA, SCL
 AT24C1024   at24c1024(i2c);     // Atmel 1Mbit EE-PROM
+const int addr = 0x70;
 
 AccelStepper stepper1(1, D9, D6);   // step, direction
 AccelStepper stepper2(1, D10, D7);  // step, direction
@@ -100,9 +101,14 @@
 
 
 //未実装
-void calc()
+void sendDataToLPC()
 {
-    stepper1.newSpeed();
+    char cmd[2];
+    cmd[0] = 0x51;  
+    cmd[1] = 0x51;  
+    i2c.write(addr, cmd, 2);
+    
+    //stepper1.newSpeed();
 }
 
 //map
@@ -199,16 +205,23 @@
 
 void interuptInit1()
 {
-    stepper1.setMaxSpeed(4000 / StepAdj1);
-    stepper1.setAcceleration(20000 / StepAdj1);
+    //stepper1.setMaxSpeed(1000);
+    //stepper1.setAcceleration(5000);
+    
 
-    //15度程度の後退動作
-    stepper1.moveTo(100);
+    //まずとにかく原点を目指す
+    stepper1.moveTo(1);
     while(stepper1.distanceToGo() != 0) {
         stepper1.run();
     }
 
-    //原点復帰動作
+    //15度程度の時計回り動作
+    stepper1.moveTo(200);
+    while(stepper1.distanceToGo() != 0) {
+        stepper1.run();
+    }
+
+    //原点復帰動作、反時計回り
     stepper1.setCurrentPosition(-1);
     stepper1.moveTo(-30000 / StepAdj1);
     while(stepper1.currentPosition() != 0) {
@@ -224,7 +237,11 @@
     stepper2.setMaxSpeed(4000 / StepAdj2);
     stepper2.setAcceleration(20000 / StepAdj2);
 
+    //まず原点を目指す
+
+
     //15度程度の後退動作
+    stepper2.setCurrentPosition(1);
     stepper2.moveTo(100);
     while(stepper2.distanceToGo() != 0) {
         stepper2.run();
@@ -653,13 +670,14 @@
 {
     wait(1);
 
-    dmxEnable = 0;  //0:receiver 1:sender
+//DMXの機能をレシーブに固定 (ハードウェア的に固定するため停止中)
+//    dmxEnable = 0;  //0:receiver 1:sender
 
     conf1();    //motor1 config     ドライバの設定
     conf2();    //motor2 config
 
     t.start();
-//    to.attach(&calc, 0.001);
+    //to.attach(&sendDataToLPC, 1);
 
     stepper1.setCurrentPosition(-1);
     stepper2.setCurrentPosition(-1);
@@ -751,7 +769,10 @@
         //checkInitCommand2();
 
         //モーター1の走行
-        if(stepper1.distanceToGo() != 0) stepper1.run();
+        if(stepper1.distanceToGo() != 0) {
+            //checkInitCommand1();
+            stepper1.run();
+        }
         //モーター2の走行(停止中)
         //if(stepper2.distanceToGo() != 0) stepper2.run();
     }