GPS and IMU reading works

Dependencies:   mbed Servo SDFileSystem

/media/uploads/taoqiuyang/img_2352.jpg

main.cpp

Committer:
taoqiuyang
Date:
2015-08-22
Revision:
6:88209696ed0c
Parent:
5:451b8203ef99
Child:
7:e59de63ed8da

File content as of revision 6:88209696ed0c:

#include "mbed.h"
#include <string>

DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
 
Serial pc(USBTX, USBRX);
Serial IMU(p28, p27);  // tx, rx
Serial GPS(p13, p14);  // tx, rx

char IMU_message[256];
int  IMU_message_counter=0;
char GPS_message[256];
int  GPS_message_counter=0;
 
void IMU_serial_ISR() {
    char buf;
    
     while (IMU.readable()) {
        buf = IMU.getc();
        
        IMU_message_counter+=1;
        IMU_message[IMU_message_counter]=buf;
        
        if (buf=='#'){
            IMU_message_counter=0;
        }
        
        if (buf=='\n'){
            int i;
            for(i=0;i<=IMU_message_counter;i++){
                pc.putc(IMU_message[i]);  
            }  
        } 
    }
    led2 = !led2;
}
 
void GPS_serial_ISR() {
    char buf;
    
     while (GPS.readable()) {
        buf = GPS.getc();
        //pc.putc(buf);    
    }
    
    led3 = !led3;
}
 
 
 
int main() {
    IMU.baud(57600);
    IMU.attach(&IMU_serial_ISR);
    GPS.baud(38400);
    GPS.attach(&GPS_serial_ISR);
    
    while (1) {
        led1 = !led1;
        wait(0.2);
    }
}