added main and defined M_PI

Dependencies:   BNOWrapper

Committer:
JesiMiranda
Date:
Tue Jul 30 21:06:04 2019 +0000
Revision:
7:b548a684290d
Parent:
5:eefbf579d5cc
Child:
8:729ad465d6c9
added watchdog;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JesiMiranda 1:4a5b43b9502c 1 #include <mbed.h>
JesiMiranda 1:4a5b43b9502c 2 #include <BNO080.h>
JesiMiranda 7:b548a684290d 3 #include "Watchdog.h"
JesiMiranda 2:1fd1549d3fbd 4
JesiMiranda 0:0f12b8c4d5f1 5 int main()
JesiMiranda 0:0f12b8c4d5f1 6 {
JesiMiranda 7:b548a684290d 7 Serial pc(USBTX, USBRX, 57600);
JesiMiranda 7:b548a684290d 8 Watchdog dog;
JesiMiranda 7:b548a684290d 9 dog.Configure(1.7); //need to find the time for entire program to run
JesiMiranda 3:24e65bfcea6d 10
JesiMiranda 1:4a5b43b9502c 11 // Create IMU, passing in output stream, pins, I2C address, and I2C frequency
JesiMiranda 7:b548a684290d 12 // These pin assignments are specific to stm32- L432KC
JesiMiranda 7:b548a684290d 13 //BNO080 imu(&pc, D4, D5, D12, D10, 0x4b, 100000);
JesiMiranda 7:b548a684290d 14 BNO080 imu(&pc, D2, D4, D13, PB_6, 0x4b, 100000);
JesiMiranda 2:1fd1549d3fbd 15 imu.begin();
JesiMiranda 4:ecd3871549e8 16
JesiMiranda 1:4a5b43b9502c 17 // Tell the IMU to report rotation every 100ms and acceleration every 200ms
JesiMiranda 7:b548a684290d 18
JesiMiranda 5:eefbf579d5cc 19 imu.enableReport(BNO080::TOTAL_ACCELERATION, 100);
JesiMiranda 1:4a5b43b9502c 20 imu.enableReport(BNO080::ROTATION, 100);
JesiMiranda 3:24e65bfcea6d 21
JesiMiranda 3:24e65bfcea6d 22 while (true) {
JesiMiranda 1:4a5b43b9502c 23 wait(.001f);
JesiMiranda 4:ecd3871549e8 24
JesiMiranda 1:4a5b43b9502c 25 // poll the IMU for new data -- this returns true if any packets were received
JesiMiranda 5:eefbf579d5cc 26
JesiMiranda 3:24e65bfcea6d 27 if(imu.updateData()) {
JesiMiranda 1:4a5b43b9502c 28 // now check for the specific type of data that was received (can be multiple at once)
JesiMiranda 5:eefbf579d5cc 29 if (imu.hasNewData(BNO080::TOTAL_ACCELERATION) || imu.hasNewData(BNO080::ROTATION)) {
JesiMiranda 5:eefbf579d5cc 30 pc.printf("Total Accel: ");
JesiMiranda 5:eefbf579d5cc 31 imu.totalAcceleration.print(pc, true);
JesiMiranda 7:b548a684290d 32
JesiMiranda 5:eefbf579d5cc 33 pc.printf(", Rotation:");
JesiMiranda 1:4a5b43b9502c 34 TVector3 eulerRadians = imu.rotationVector.euler();
JesiMiranda 1:4a5b43b9502c 35 TVector3 eulerDegrees = eulerRadians * (180.0 / M_PI);
JesiMiranda 1:4a5b43b9502c 36 eulerDegrees.print(pc, true);
JesiMiranda 1:4a5b43b9502c 37 pc.printf("\n");
JesiMiranda 7:b548a684290d 38
JesiMiranda 7:b548a684290d 39 dog.Service();
JesiMiranda 1:4a5b43b9502c 40 }
JesiMiranda 7:b548a684290d 41
JesiMiranda 1:4a5b43b9502c 42 }
JesiMiranda 0:0f12b8c4d5f1 43 }
JesiMiranda 3:24e65bfcea6d 44
JesiMiranda 0:0f12b8c4d5f1 45 }
JesiMiranda 3:24e65bfcea6d 46