для управления турелью

Dependencies:   mbed

Revision:
3:e47c0c98f515
Parent:
0:690effcc5be0
--- a/main.cpp	Sun Jan 15 22:32:04 2017 +0000
+++ b/main.cpp	Thu Jan 19 05:22:19 2017 +0000
@@ -1,23 +1,60 @@
 #include "mbed.h"
-#include "rtos.h"
+//#include "rtos.h"
+#include "main.hpp"
 #include <string> 
 #include "servo.hpp"
 #include "uart.hpp"
 #include "gun.hpp"
+#include "led_color.hpp"
+#include "mpu6050.hpp"
 
+// включим режим тестирования гироскопа и акселерометра
+#define MPU6050_TEST_ENABLED
 
 using namespace std;
 
-DigitalOut my_led(LED1);
+DigitalOut my_led(LED1); // светодиод на плате
+StateLed MainStateLed; // для управления индикаторным светодиодом
+Timer t2; // таймер для вывода раз в 0.5 сек данных акселерометра
+int delt_tms = 0; 
+int countms = 0; 
 
 int main() {
-    int i = 1;
-    Thread thread1(uartThread, NULL, osPriorityNormal, DEFAULT_STACK_SIZE);
+    disabledGun(); // отключить пушку
+    #ifndef MPU6050_TEST_ENABLED
+    // инициалирация сервоприводов портит данные с гироскопа и акселерометра
+    // поэтому для тестирования гироскопа отключим их
     initServo();
-    disabledGun();
+    #endif
+    #ifdef MPU6050_TEST_ENABLED
+    // инициализируем гироскоп и акселерометр
+    initMPU6050();
+    #endif
+    // запустим таймер 
+    t2.start();
+    MainStateLed.setLedGreen(); // установим цвет индикаторного светодиода в зеленый
+    // для вывода частоты (показывает 64 Мгц)
+    //printf("SystemCoreClock = %d Hz\n\r", HAL_RCC_GetSysClockFreq());
+    wait(2); // ждем две секунды
     while (true) {
-        my_led = !my_led;
-        Thread::wait(500);
+        #ifdef MPU6050_TEST_ENABLED
+        // опросим гироскоп и акселерометр
+        mpu6050TimerInterrupt();
+        #endif
+        #ifndef MPU6050_TEST_ENABLED
+        // обновим обработчик UART
+        uartUpdate();
+        #endif
+        // проверим, прошло ли 0.5 секунд
+        delt_tms = t2.read_ms() - countms;
+        if (delt_tms > 500) {
+            #ifdef MPU6050_TEST_ENABLED
+            // выведем углы
+            getMPU6050();
+            #endif
+            my_led = !my_led; //мигнем светодиодом
+            countms = t2.read_ms(); 
+        }
     }
     
 }