A project similar to http://mbed.org/users/lhiggs/code/UM6_IMU_AHRS_2012/, where I'm trying to log data from a UM6 (CH Robotics orientation sensor) and a GPS transceiver to an sd card. I've adapted LHiggs code to include ModGPS. For sum reason a soon as I pick up a gps signal the UM6 data freezes i.e. the time and gps signals continue to print out but the UM6 signals fixes on a single value.

Dependencies:   MODGPS MODSERIAL SDFileSystem mbed

Committer:
njewin
Date:
Thu May 23 15:02:07 2013 +0000
Revision:
2:4a6e89c2d82a
Parent:
1:9fe40d9ac0f5
Child:
3:b3358ec2f57c
prints counter to pc and local file; - opens file once (problems with continuously opening and closing local file)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
njewin 0:52295643d083 1 #include "mbed.h"
njewin 0:52295643d083 2
njewin 1:9fe40d9ac0f5 3 //------------ system and interface setup ----------------------------//
njewin 0:52295643d083 4 LocalFileSystem local("local"); // sets up local file on mbed
njewin 0:52295643d083 5 Serial pc(USBTX, USBRX); // sets up serial connection to pc terminal
njewin 0:52295643d083 6
njewin 1:9fe40d9ac0f5 7 //------------ Hardware setup ----------------------------------------//
njewin 0:52295643d083 8 DigitalOut myled(LED1); // debug LED
njewin 0:52295643d083 9 DigitalIn enable(p10); // enable signal for logging data to file
njewin 0:52295643d083 10
njewin 1:9fe40d9ac0f5 11 //------------ interrupt and variable setup --------------------------//
njewin 1:9fe40d9ac0f5 12 Ticker tick;
njewin 1:9fe40d9ac0f5 13 int counter=0;
njewin 1:9fe40d9ac0f5 14 int flag=0;
njewin 1:9fe40d9ac0f5 15
njewin 1:9fe40d9ac0f5 16 //------------ LogData interrupt function ----------------------------//
njewin 1:9fe40d9ac0f5 17 void LogData() {
njewin 1:9fe40d9ac0f5 18 counter++;
njewin 1:9fe40d9ac0f5 19 flag=1;
njewin 1:9fe40d9ac0f5 20 }
njewin 1:9fe40d9ac0f5 21
njewin 1:9fe40d9ac0f5 22 //============= Main Program =========================================//
njewin 0:52295643d083 23 int main() {
njewin 1:9fe40d9ac0f5 24 pc.baud(115200); // baud rate to pc interface
njewin 2:4a6e89c2d82a 25 FILE *fp = fopen("/local/ticker4.txt", "w");
njewin 2:4a6e89c2d82a 26
njewin 2:4a6e89c2d82a 27 tick.attach(&LogData, 0.01); // attaches LogData function to 'tick' ticker interrupt every 0.5s
njewin 1:9fe40d9ac0f5 28
njewin 1:9fe40d9ac0f5 29 while(1) {
njewin 1:9fe40d9ac0f5 30 while(enable) {
njewin 1:9fe40d9ac0f5 31 if(flag==1) { // prints counter value every interrupt raises flag
njewin 1:9fe40d9ac0f5 32 myled=1;
njewin 2:4a6e89c2d82a 33 fprintf(fp,"%d \n",counter);
njewin 2:4a6e89c2d82a 34 pc.printf("%d \n",counter);
njewin 1:9fe40d9ac0f5 35 flag=0;
njewin 1:9fe40d9ac0f5 36 } // end if(flag=1) loop
njewin 1:9fe40d9ac0f5 37 } // end while(enable) loop
njewin 2:4a6e89c2d82a 38 fclose(fp);
njewin 1:9fe40d9ac0f5 39 myled=0; // turns off LED when enable switch off
njewin 1:9fe40d9ac0f5 40 counter=0; // resets counter
njewin 2:4a6e89c2d82a 41 } // end while(1) loop
njewin 1:9fe40d9ac0f5 42 } // end main() loop