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 14:08:06 2013 +0000
Revision:
1:9fe40d9ac0f5
Parent:
0:52295643d083
Child:
2:4a6e89c2d82a
ticker interrupt + pc print out

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 1:9fe40d9ac0f5 25 tick.attach(&LogData, 0.001); // attaches LogData function to 'tick' ticker interrupt every 0.5s
njewin 1:9fe40d9ac0f5 26
njewin 1:9fe40d9ac0f5 27 while(1) {
njewin 1:9fe40d9ac0f5 28 while(enable) {
njewin 1:9fe40d9ac0f5 29 if(flag==1) { // prints counter value every interrupt raises flag
njewin 1:9fe40d9ac0f5 30 myled=1;
njewin 1:9fe40d9ac0f5 31 pc.printf("%2d \n",counter);
njewin 1:9fe40d9ac0f5 32 flag=0;
njewin 1:9fe40d9ac0f5 33 } // end if(flag=1) loop
njewin 1:9fe40d9ac0f5 34 } // end while(enable) loop
njewin 1:9fe40d9ac0f5 35 myled=0; // turns off LED when enable switch off
njewin 1:9fe40d9ac0f5 36 counter=0; // resets counter
njewin 1:9fe40d9ac0f5 37 } // end while(1) loop
njewin 1:9fe40d9ac0f5 38 } // end main() loop