by MARTA RADI

Dependencies:   GPSM bno055 SDcardM

Committer:
renemagrit
Date:
Thu Oct 03 20:21:37 2019 +0000
Revision:
3:835df5760305
Parent:
1:9fac2596c39d
MSPD ispravak

Who changed what in which revision?

UserRevisionLine numberNew contents of line
milenicnikola 0:feb16cdce752 1 /*------------------LIBS------------------*/
milenicnikola 0:feb16cdce752 2 #include "mbed.h"
milenicnikola 0:feb16cdce752 3 #include "bno055.h"
milenicnikola 1:9fac2596c39d 4 #include "CANlibrary.h"
milenicnikola 1:9fac2596c39d 5 #include "CANadressID.h"
milenicnikola 1:9fac2596c39d 6 #include "GPSM.h"
milenicnikola 1:9fac2596c39d 7 #include "SDcardM.h"
milenicnikola 1:9fac2596c39d 8 #include "SDBlockDevice.h"
milenicnikola 0:feb16cdce752 9 #include <string>
milenicnikola 0:feb16cdce752 10 /*---------------DATA TYPES---------------*/
milenicnikola 1:9fac2596c39d 11
renemagrit 3:835df5760305 12 CAN can(PA_11, PA_12,1000000);
milenicnikola 1:9fac2596c39d 13
milenicnikola 0:feb16cdce752 14 //10DOF
milenicnikola 1:9fac2596c39d 15 BNO055 imu(PB_14, PB_13);
milenicnikola 1:9fac2596c39d 16 char calibration[22]= {0x03, 0x00, 0xF2, 0xFF, 0x08, 0x00, 0xB4,
milenicnikola 1:9fac2596c39d 17 0x00, 0xAB, 0xFF, 0xD9, 0xFE, 0xFF, 0xFF,
milenicnikola 1:9fac2596c39d 18 0xF5, 0xFF, 0x00, 0x00, 0xE8, 0x03, 0x95, 0x02
milenicnikola 1:9fac2596c39d 19 };
milenicnikola 1:9fac2596c39d 20 //XBEE
milenicnikola 1:9fac2596c39d 21 Serial pc(PA_0, PA_1, 115200);
milenicnikola 0:feb16cdce752 22
milenicnikola 1:9fac2596c39d 23 //SD Card Object
milenicnikola 1:9fac2596c39d 24 SDBlockDevice sd(PA_7, PA_6, PA_5, PA_4, 100000);
milenicnikola 0:feb16cdce752 25
milenicnikola 1:9fac2596c39d 26 uint8_t buff[512] = "";
milenicnikola 1:9fac2596c39d 27 bd_addr_t* blockAddr = (bd_addr_t*) buff;
milenicnikola 1:9fac2596c39d 28 //uint32_t* byteAddr = blockAddr+1;
milenicnikola 0:feb16cdce752 29
milenicnikola 1:9fac2596c39d 30 int main()
milenicnikola 1:9fac2596c39d 31 {
milenicnikola 1:9fac2596c39d 32 *blockAddr=512;
milenicnikola 1:9fac2596c39d 33 //*byteAddr=14;
milenicnikola 1:9fac2596c39d 34 pc.printf("INITIALIZING...\r\n");
milenicnikola 1:9fac2596c39d 35 //GPS INIT
milenicnikola 1:9fac2596c39d 36 pc.printf("GPS...\r\n");
milenicnikola 1:9fac2596c39d 37 GPSM::GPSM_Init(PC_10, PC_11);
milenicnikola 1:9fac2596c39d 38 while(GPSM::_gps->readable()) GPSM::_gps->getc();
milenicnikola 1:9fac2596c39d 39 GPSM::_gps->attach(callback(GPSM::rx_interrupt));
milenicnikola 0:feb16cdce752 40 //10DOF INIT
milenicnikola 1:9fac2596c39d 41 //imu.reset();
milenicnikola 1:9fac2596c39d 42 //while(!imu.check());
milenicnikola 1:9fac2596c39d 43 pc.printf("IMU...\r\n");
milenicnikola 0:feb16cdce752 44 //10DOF SET MODE AND CALIBRATE
milenicnikola 0:feb16cdce752 45 imu.set_calibration_data(calibration);
milenicnikola 0:feb16cdce752 46 imu.setmode(OPERATION_MODE_NDOF);
milenicnikola 0:feb16cdce752 47 wait_ms(10);
milenicnikola 0:feb16cdce752 48 imu.write_calibration_data();
milenicnikola 1:9fac2596c39d 49
milenicnikola 1:9fac2596c39d 50 pc.printf("CAN...\r\n");
renemagrit 3:835df5760305 51 //can.frequency(1000000); //10hz???
milenicnikola 1:9fac2596c39d 52 can_initRX();
milenicnikola 1:9fac2596c39d 53
milenicnikola 1:9fac2596c39d 54 pc.printf("SD...\r\n");
milenicnikola 1:9fac2596c39d 55 SD_init();
milenicnikola 1:9fac2596c39d 56 //sd.init();
milenicnikola 1:9fac2596c39d 57 //sd.program(buff, 0, 512);
milenicnikola 1:9fac2596c39d 58 SD_log_string("PILETINA SE ZA PRSTE LEPI!");
milenicnikola 1:9fac2596c39d 59 SD_log_float(3.14159);
milenicnikola 1:9fac2596c39d 60 SD_log_int(73);
milenicnikola 1:9fac2596c39d 61 SD_flush();
milenicnikola 1:9fac2596c39d 62 sd.read(buff, 512, 512);
milenicnikola 1:9fac2596c39d 63 pc.printf("%s", buff);
milenicnikola 0:feb16cdce752 64
milenicnikola 0:feb16cdce752 65
milenicnikola 1:9fac2596c39d 66 pc.printf("STATUS NOMINAL: ALL FUCKED UP\r\n");
milenicnikola 1:9fac2596c39d 67 //ticker.attach(&tick, 1);
milenicnikola 1:9fac2596c39d 68 //ticked=false;
milenicnikola 1:9fac2596c39d 69 /*----------------MAIN LOOP----------------*/
milenicnikola 0:feb16cdce752 70 while (true) {
milenicnikola 1:9fac2596c39d 71 //while(!ticked);
milenicnikola 1:9fac2596c39d 72 //ticked=false;
milenicnikola 1:9fac2596c39d 73 wait_ms(1000);
milenicnikola 1:9fac2596c39d 74
milenicnikola 0:feb16cdce752 75 //GET YPR
milenicnikola 0:feb16cdce752 76 imu.get_angles();
milenicnikola 0:feb16cdce752 77 pc.printf("Yaw: %5.1f Pitch: %5.1f Roll: %5.1f\r\n", imu.euler.yaw, imu.euler.pitch, imu.euler.roll);
milenicnikola 0:feb16cdce752 78
milenicnikola 0:feb16cdce752 79 //GET ACCEL
milenicnikola 0:feb16cdce752 80 imu.get_accel();
milenicnikola 0:feb16cdce752 81 pc.printf("ACX: %5.1f ACY: %5.1f ACZ: %5.1f\r\n", imu.accel.x, imu.accel.y, imu.accel.z);
milenicnikola 1:9fac2596c39d 82
milenicnikola 1:9fac2596c39d 83 if(imu.getmode()!=OPERATION_MODE_NDOF) {
milenicnikola 1:9fac2596c39d 84 pc.printf("IMU_FEJL\r\n");
milenicnikola 1:9fac2596c39d 85 imu.setmode(OPERATION_MODE_NDOF);
milenicnikola 1:9fac2596c39d 86 wait_ms(10);
milenicnikola 1:9fac2596c39d 87 imu.write_calibration_data();
milenicnikola 1:9fac2596c39d 88 pc.printf("REINITED\r\n");
milenicnikola 1:9fac2596c39d 89 }
milenicnikola 1:9fac2596c39d 90
milenicnikola 1:9fac2596c39d 91 if(GPSM::poll())
milenicnikola 1:9fac2596c39d 92 pc.printf("LON: %f, LAT: %f\r\n", GPSM::get_dec_longitude(), GPSM::get_dec_latitude());
milenicnikola 1:9fac2596c39d 93
milenicnikola 1:9fac2596c39d 94
renemagrit 3:835df5760305 95 if(check_flag(10)) {
renemagrit 3:835df5760305 96 pc.printf("ASAD1: %d\n", get_data(10, 0));
milenicnikola 1:9fac2596c39d 97 }
milenicnikola 1:9fac2596c39d 98 if(check_flag(12)) {
renemagrit 3:835df5760305 99 pc.printf("ASAD2: %d\n", get_data(12, 0));
milenicnikola 1:9fac2596c39d 100 }
renemagrit 3:835df5760305 101 pc.printf(" - - - - - - - DTA - - - - - - - \n");
renemagrit 3:835df5760305 102 pc.printf("DTA1: RPM - %d TPS - %d WaterTemp - %d AirTemp - %d\n", get_data(DTA1_RPM), get_data(DTA1_TPS), get_data(DTA1_WaterTemp), get_data(DTA1_AirTemp));
renemagrit 3:835df5760305 103 pc.printf("DTA2: MAP - %d Lambda - %d Speed - %d OilPres - %d\n", get_data(DTA2_MAP), get_data(DTA2_Lambda), get_data(DTA2_Speed), get_data(DTA2_OilPres));
renemagrit 3:835df5760305 104 pc.printf("DTA3: OilTemp - %d Volts - %d\n", get_data(DTA3_OilTemp), get_data(DTA3_Volts));
renemagrit 3:835df5760305 105 pc.printf("DTA4: Gear - %d\n", get_data(DTA4_Gear));
renemagrit 3:835df5760305 106 pc.printf("DTA6: Crank - %d\n", get_data(DTA6_Crank));
renemagrit 3:835df5760305 107
milenicnikola 1:9fac2596c39d 108
milenicnikola 0:feb16cdce752 109 }
milenicnikola 0:feb16cdce752 110 }