Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Servo TMP36 GZ buffered-serial1 chan_fatfs_sd nmea_parser watchdog mbed-rtos mbed
Fork of HARP2 by
Diff: main.cpp
- Revision:
- 14:dce4d8c29b17
- Parent:
- 13:db6af0620264
- Child:
- 15:ceac642f6b75
diff -r db6af0620264 -r dce4d8c29b17 main.cpp
--- a/main.cpp Wed Dec 12 16:01:30 2012 +0000
+++ b/main.cpp Wed Dec 12 16:22:09 2012 +0000
@@ -23,7 +23,7 @@
Queue<gps_line, 16> queue_gps_line;
typedef struct {
- float gps_battery; // gps battery voltage
+ char line[80];
} sensor_line;
MemoryPool<sensor_line, 16> mpool_sensor_line;
Queue<sensor_line, 16> queue_sensor_line;
@@ -37,10 +37,11 @@
gps.baud(4800);
while(true) {
+ gps_led = 1;
gps.read_line(buffer);
- gps_led = !gps_led;
- pc.puts(buffer);
+ //pc.puts(buffer);
// send to log...
+ gps_led = 0;
gps_line *message = mpool_gps_line.alloc();
strcpy(message->line, buffer);
queue_gps_line.put(message);
@@ -58,46 +59,55 @@
f_mount(0, &fs);
f_open(&fp_gps, "0:gps.txt", FA_CREATE_ALWAYS | FA_WRITE);
f_open(&fp_sensor, "0:sensor.txt", FA_CREATE_ALWAYS | FA_WRITE);
- log_led = 1;
while(1) {
- osEvent evt = queue_gps_line.get(1);
- if (evt.status == osEventMessage) {
- gps_line *message = (gps_line*)evt.value.p;
+ log_led = 1;
+ osEvent evt1 = queue_gps_line.get(1);
+ if (evt1.status == osEventMessage) {
+ gps_line *message = (gps_line*)evt1.value.p;
- log_led = !log_led;
f_puts(message->line, &fp_gps);
f_sync(&fp_gps);
mpool_gps_line.free(message);
}
- evt = queue_sensor_line.get(1);
- if(evt.status == osEventMessage) {
- sensor_line *message = (sensor_line*)evt.value.p;
+ osEvent evt2 = queue_sensor_line.get(1);
+ if(evt2.status == osEventMessage) {
+ sensor_line *message = (sensor_line*)evt2.value.p;
- sprintf(buffer, "%f\r\n", message->gps_battery);
+ f_puts(message->line, &fp_sensor);
+ f_sync(&fp_sensor);
mpool_sensor_line.free(message);
}
+ log_led = 0;
}
}
void sensor_thread(const void* args)
{
+ DigitalOut sensor_led(LED2);
+
+ sensor_line *message = mpool_sensor_line.alloc();
+ strcpy(message->line, "GPS Battery,\r\n");
+ queue_sensor_line.put(message);
+
while(true)
{
//get sensor line memory
+ sensor_led = 1;
sensor_line *message = mpool_sensor_line.alloc();
//gps battery
float sample = gps_battery.read();
- float voltage = sample*BAT_MUL*3.3;
- message->gps_battery = voltage;
+ float gps_battery_voltage = sample*BAT_MUL*3.3;
// more sensors
- queue_sensor_line.put(message);
+ sprintf(message->line, "%f,\r\n", gps_battery_voltage);
+ queue_sensor_line.put(message);
+ sensor_led = 0;
Thread::wait(1000);
}
}
@@ -107,7 +117,7 @@
pc.baud(9600);
Thread thread(gps_thread, NULL, osPriorityHigh);
Thread thread2(log_thread, NULL, osPriorityNormal);
- //Thread thread3(sensor_thread, NULL, osPriorityNormal);
+ Thread thread3(sensor_thread, NULL, osPriorityNormal);
while(true) {
}
