Generation 2 of the Harp project
Dependencies: Servo TMP36 GZ chan_fatfs_sd buffered-serial1 nmea_parser watchdog mbed-rtos mbed
Diff: main.cpp
- Revision:
- 25:81c3696ba2c9
- Parent:
- 24:7477105103e5
- Child:
- 26:85cdb1031eb1
diff -r 7477105103e5 -r 81c3696ba2c9 main.cpp --- a/main.cpp Mon Dec 17 23:42:34 2012 +0000 +++ b/main.cpp Fri Dec 28 17:12:27 2012 +0000 @@ -8,6 +8,8 @@ #include "ff.h" #include "BMP085.h" #include "nmea_parser.h" +#include "watchdog.h" +#include "Servo.h" #include "config.h" I2C i2c(p9, p10); // sda, scl @@ -80,8 +82,10 @@ DigitalOut log_led(LED3); f_mount(0, &fs); - f_open(&fp_gps, "0:gps.txt", FA_CREATE_ALWAYS | FA_WRITE); - f_open(&fp_sensor, "0:sensors.csv", FA_CREATE_ALWAYS | FA_WRITE); + f_open(&fp_gps, "0:gps.txt", FA_OPEN_EXISTING | FA_WRITE); + f_lseek(&fp_gps, f_size(&fp_gps)); // NOT TESTED!!! + f_open(&fp_sensor, "0:sensors.csv", FA_OPEN_EXISTING | FA_WRITE); + f_lseek(&fp_sensor, f_size(&fp_sensor)); // NOT TESTED!!! while(1) { log_led = !log_led; @@ -154,6 +158,18 @@ { DigitalOut left_turn(LED4); DigitalOut right_turn(LED1); + + // servos ////////////////////////// NOT TESTED!!! /////////////////////////// + Servo left_s(p21); + Servo right_s(p22); + + left_s.calibrate_max(0.0007); + left_s.calibrate_min(-0.0014); + right_s.calibrate(0.0009); + + left_s = 0.0; + right_s = 0.0; + //////////////////////////////////////////////////////////////////////////////// right_turn = 1; Thread::wait(400); @@ -181,10 +197,16 @@ continue; // don't do anything } else if(course_diff > 180.0 || course_diff < 0.0) { left_turn = 1; + right_s = 0.0; // NOT TESTED!!! + left_s = 1.0; Thread::wait(400); // turn left + left_s = 0.0; } else { right_turn = 1; + left_s = 0.0; + right_s = 1.0; Thread::wait(400); // turn righ + right_s = 0.0; } } } @@ -196,6 +218,13 @@ Thread thread2(log_thread, NULL, osPriorityNormal); Thread thread3(sensor_thread, NULL, osPriorityNormal); Thread thread4(parachute_thread, NULL, osPriorityRealtime); + + Watchdog wdt; // NOT TESTED!!! + + wdt.kick(2.0); - while(true) ; + while(true) { + wdt.kick(); + Thread::wait(500); + } } \ No newline at end of file