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

Dependencies:   mbed

Committer:
Yar
Date:
Thu Jan 19 05:22:19 2017 +0000
Revision:
3:e47c0c98f515
Parent:
0:690effcc5be0
MPU6050

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Yar 0:690effcc5be0 1 #include "mbed.h"
Yar 3:e47c0c98f515 2 //#include "rtos.h"
Yar 3:e47c0c98f515 3 #include "main.hpp"
Yar 0:690effcc5be0 4 #include <string>
Yar 0:690effcc5be0 5 #include "servo.hpp"
Yar 0:690effcc5be0 6 #include "uart.hpp"
Yar 0:690effcc5be0 7 #include "gun.hpp"
Yar 3:e47c0c98f515 8 #include "led_color.hpp"
Yar 3:e47c0c98f515 9 #include "mpu6050.hpp"
Yar 0:690effcc5be0 10
Yar 3:e47c0c98f515 11 // включим режим тестирования гироскопа и акселерометра
Yar 3:e47c0c98f515 12 #define MPU6050_TEST_ENABLED
Yar 0:690effcc5be0 13
Yar 0:690effcc5be0 14 using namespace std;
Yar 0:690effcc5be0 15
Yar 3:e47c0c98f515 16 DigitalOut my_led(LED1); // светодиод на плате
Yar 3:e47c0c98f515 17 StateLed MainStateLed; // для управления индикаторным светодиодом
Yar 3:e47c0c98f515 18 Timer t2; // таймер для вывода раз в 0.5 сек данных акселерометра
Yar 3:e47c0c98f515 19 int delt_tms = 0;
Yar 3:e47c0c98f515 20 int countms = 0;
Yar 0:690effcc5be0 21
Yar 0:690effcc5be0 22 int main() {
Yar 3:e47c0c98f515 23 disabledGun(); // отключить пушку
Yar 3:e47c0c98f515 24 #ifndef MPU6050_TEST_ENABLED
Yar 3:e47c0c98f515 25 // инициалирация сервоприводов портит данные с гироскопа и акселерометра
Yar 3:e47c0c98f515 26 // поэтому для тестирования гироскопа отключим их
Yar 0:690effcc5be0 27 initServo();
Yar 3:e47c0c98f515 28 #endif
Yar 3:e47c0c98f515 29 #ifdef MPU6050_TEST_ENABLED
Yar 3:e47c0c98f515 30 // инициализируем гироскоп и акселерометр
Yar 3:e47c0c98f515 31 initMPU6050();
Yar 3:e47c0c98f515 32 #endif
Yar 3:e47c0c98f515 33 // запустим таймер
Yar 3:e47c0c98f515 34 t2.start();
Yar 3:e47c0c98f515 35 MainStateLed.setLedGreen(); // установим цвет индикаторного светодиода в зеленый
Yar 3:e47c0c98f515 36 // для вывода частоты (показывает 64 Мгц)
Yar 3:e47c0c98f515 37 //printf("SystemCoreClock = %d Hz\n\r", HAL_RCC_GetSysClockFreq());
Yar 3:e47c0c98f515 38 wait(2); // ждем две секунды
Yar 0:690effcc5be0 39 while (true) {
Yar 3:e47c0c98f515 40 #ifdef MPU6050_TEST_ENABLED
Yar 3:e47c0c98f515 41 // опросим гироскоп и акселерометр
Yar 3:e47c0c98f515 42 mpu6050TimerInterrupt();
Yar 3:e47c0c98f515 43 #endif
Yar 3:e47c0c98f515 44 #ifndef MPU6050_TEST_ENABLED
Yar 3:e47c0c98f515 45 // обновим обработчик UART
Yar 3:e47c0c98f515 46 uartUpdate();
Yar 3:e47c0c98f515 47 #endif
Yar 3:e47c0c98f515 48 // проверим, прошло ли 0.5 секунд
Yar 3:e47c0c98f515 49 delt_tms = t2.read_ms() - countms;
Yar 3:e47c0c98f515 50 if (delt_tms > 500) {
Yar 3:e47c0c98f515 51 #ifdef MPU6050_TEST_ENABLED
Yar 3:e47c0c98f515 52 // выведем углы
Yar 3:e47c0c98f515 53 getMPU6050();
Yar 3:e47c0c98f515 54 #endif
Yar 3:e47c0c98f515 55 my_led = !my_led; //мигнем светодиодом
Yar 3:e47c0c98f515 56 countms = t2.read_ms();
Yar 3:e47c0c98f515 57 }
Yar 0:690effcc5be0 58 }
Yar 0:690effcc5be0 59
Yar 0:690effcc5be0 60 }
Yar 0:690effcc5be0 61