Backup 1

Revision:
0:02dd72d1d465
diff -r 000000000000 -r 02dd72d1d465 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Apr 24 11:45:18 2018 +0000
@@ -0,0 +1,169 @@
+#include "mbed.h"
+#include "EncoderCounter.h"
+#include "IMU.h"
+#include "Controller.h"
+
+DigitalOut myled(LED1);
+Serial pc1(USBTX, USBRX); // tx, rx
+
+DigitalOut led1(PB_13);
+DigitalOut led2(PC_8);
+DigitalOut led3(PC_9);
+DigitalOut led4(PC_0);
+DigitalOut led5(PC_1);
+DigitalOut led6(PH_1);
+DigitalOut led7(PC_2);
+DigitalOut led8(PC_3);
+DigitalOut led9(PB_0);
+
+// create motor control objects
+DigitalOut enable1(PB_1);
+DigitalOut enable2(PB_2);
+DigitalOut enable3(PB_3);
+
+PwmOut pwm1(PA_8);
+PwmOut pwm2(PA_9);
+PwmOut pwm3(PA_10);
+
+// crete Encoder read objects
+EncoderCounter counter1(PA_6, PC_7);
+EncoderCounter counter2(PB_6, PB_7);
+EncoderCounter counter3(PA_1, PA_0);
+
+// create IMU comunication objects
+SPI spi(PC_12, PC_11, PC_10); // mosi, miso, sclk
+DigitalOut csAG(PA_15);
+DigitalOut csM(PD_2);
+
+// escon I/O
+
+
+//AnalogIn M1_AOUT1(PB_4);
+//AnalogIn M1_AOUT2(PB_5);
+
+//AnalogIn M2_AOUT1(PB_14);
+//AnalogIn M2_AOUT2(PB_15);
+
+AnalogIn M3_AOUT1(PA_7);
+//AnalogIn M3_AOUT2(PA_11);
+
+
+Thread thread;
+
+int main()
+{
+    //IMU
+    IMU imu(spi, csAG, csM);
+
+    pwm1.period_us(200);
+    enable1 = 1;
+    //pwm1.write(0.6f);
+
+    pwm2.period_us(200);
+    enable2 = 1;
+    //pwm2.write(0.6f);
+
+    pwm3.period_us(200);
+    enable3 = 1;
+    //pwm3.write(0.6f);
+    
+    //controller
+    Controller controller(pwm1,pwm2,pwm3,counter1,counter2,counter3,imu);
+    
+    pc1.baud(100000);
+    
+    led1 = 0;
+    led2 = 0;
+    led3 = 0;
+    led4 = 0;
+
+    int i = 1;
+    
+    float gamma_z = 0;
+    float gz_vor = 0;
+    
+    int t = 0;
+    
+    while(1) {
+        
+        led4 = 0;
+        led9 = 0;
+        led5 = 0;
+        led6 = 0;
+        led7 = 0;
+        led8 = 0;
+
+        switch(i) {
+            case 1:
+                led4 = 1;
+                break;
+
+            case 2:
+                led9 = 1;
+                break;
+
+            case 3:
+                led5 = 1;
+                break;
+
+            case 4:
+                led6 = 1;
+                break;
+
+            case 5:
+                led7 = 1;
+                break;
+
+            case 6:
+                led8 = 1;
+                break;
+
+            case 7:
+                led7 = 1;
+                break;
+
+            case 8:
+                led6 = 1;
+                break;
+
+            case 9:
+                led5 = 1;
+                break;
+            case 10:
+                led9 = 1;
+                break;
+
+            default:
+                led1 = 0;
+                led2 = 0;
+                led3 = 0;
+                led4 = 0;
+                break;
+        }
+
+        i++;
+        if(i==11) {
+            i=1;
+        }
+
+        myled = 1; // LED is ON
+        thread.wait(50.0);
+        
+        float gz = imu.readGyroZ();
+        gamma_z = (gz-gz_vor)*0.05f + gamma_z;
+        float f = t*(-0.0011f);
+        
+        //printf("counter1: %d counter2: %d counter3: %d\r\n", counter1.read(),counter2.read(),counter3.read());
+        //printf("%.5f %.5f\r\n",imu.getGammaX(),imu.getGammaY());
+        //printf("%.5f %.5f\r\n",imu.getGammaZ(),imu.getGammaZ());
+        //printf("%.5f %.5f\r\n",imu.readMagnetometerX()*166.0045f -550.0f, imu.readMagnetometerY()*140.6528f + 0.0f);
+        //printf("%.2f %.6f %.6f %.6f %.6f %.6f %.6f %.6f %.6f %.6f\r\n",time,imu.readAccelerationX(), imu.readAccelerationY(), imu.readAccelerationZ(),imu.readGyroX(), imu.readGyroY(), imu.readGyroZ(),imu.readMagnetometerX(), imu.readMagnetometerY(), imu.readMagnetometerZ());
+        
+        //printf("%.7f %.7f\r\n",M1_AOUT1.read(),M1_AOUT2.read());
+        
+        //printf("main\r\n");
+        
+        t++;
+
+    }
+}