GPS and IMU reading works

Dependencies:   mbed Servo SDFileSystem

/media/uploads/taoqiuyang/img_2352.jpg

Committer:
taoqiuyang
Date:
Sat Aug 22 23:49:47 2015 +0000
Revision:
6:88209696ed0c
Parent:
5:451b8203ef99
Child:
7:e59de63ed8da
aaa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
taoqiuyang 0:f4d390c06705 1 #include "mbed.h"
taoqiuyang 3:ab9f94d112c0 2 #include <string>
taoqiuyang 3:ab9f94d112c0 3
taoqiuyang 2:afb333543af5 4 DigitalOut led1(LED1);
taoqiuyang 2:afb333543af5 5 DigitalOut led2(LED2);
taoqiuyang 5:451b8203ef99 6 DigitalOut led3(LED3);
taoqiuyang 2:afb333543af5 7
taoqiuyang 2:afb333543af5 8 Serial pc(USBTX, USBRX);
taoqiuyang 2:afb333543af5 9 Serial IMU(p28, p27); // tx, rx
taoqiuyang 5:451b8203ef99 10 Serial GPS(p13, p14); // tx, rx
taoqiuyang 2:afb333543af5 11
taoqiuyang 2:afb333543af5 12 char IMU_message[256];
taoqiuyang 3:ab9f94d112c0 13 int IMU_message_counter=0;
taoqiuyang 5:451b8203ef99 14 char GPS_message[256];
taoqiuyang 5:451b8203ef99 15 int GPS_message_counter=0;
taoqiuyang 2:afb333543af5 16
taoqiuyang 4:37d118f2348c 17 void IMU_serial_ISR() {
taoqiuyang 3:ab9f94d112c0 18 char buf;
taoqiuyang 3:ab9f94d112c0 19
taoqiuyang 3:ab9f94d112c0 20 while (IMU.readable()) {
taoqiuyang 3:ab9f94d112c0 21 buf = IMU.getc();
taoqiuyang 3:ab9f94d112c0 22
taoqiuyang 3:ab9f94d112c0 23 IMU_message_counter+=1;
taoqiuyang 3:ab9f94d112c0 24 IMU_message[IMU_message_counter]=buf;
taoqiuyang 3:ab9f94d112c0 25
taoqiuyang 3:ab9f94d112c0 26 if (buf=='#'){
taoqiuyang 3:ab9f94d112c0 27 IMU_message_counter=0;
taoqiuyang 3:ab9f94d112c0 28 }
taoqiuyang 3:ab9f94d112c0 29
taoqiuyang 3:ab9f94d112c0 30 if (buf=='\n'){
taoqiuyang 3:ab9f94d112c0 31 int i;
taoqiuyang 3:ab9f94d112c0 32 for(i=0;i<=IMU_message_counter;i++){
taoqiuyang 6:88209696ed0c 33 pc.putc(IMU_message[i]);
taoqiuyang 3:ab9f94d112c0 34 }
taoqiuyang 3:ab9f94d112c0 35 }
taoqiuyang 3:ab9f94d112c0 36 }
taoqiuyang 2:afb333543af5 37 led2 = !led2;
taoqiuyang 2:afb333543af5 38 }
taoqiuyang 0:f4d390c06705 39
taoqiuyang 5:451b8203ef99 40 void GPS_serial_ISR() {
taoqiuyang 5:451b8203ef99 41 char buf;
taoqiuyang 5:451b8203ef99 42
taoqiuyang 5:451b8203ef99 43 while (GPS.readable()) {
taoqiuyang 5:451b8203ef99 44 buf = GPS.getc();
taoqiuyang 5:451b8203ef99 45 //pc.putc(buf);
taoqiuyang 5:451b8203ef99 46 }
taoqiuyang 5:451b8203ef99 47
taoqiuyang 5:451b8203ef99 48 led3 = !led3;
taoqiuyang 5:451b8203ef99 49 }
taoqiuyang 3:ab9f94d112c0 50
taoqiuyang 3:ab9f94d112c0 51
taoqiuyang 3:ab9f94d112c0 52
taoqiuyang 0:f4d390c06705 53 int main() {
taoqiuyang 2:afb333543af5 54 IMU.baud(57600);
taoqiuyang 4:37d118f2348c 55 IMU.attach(&IMU_serial_ISR);
taoqiuyang 5:451b8203ef99 56 GPS.baud(38400);
taoqiuyang 5:451b8203ef99 57 GPS.attach(&GPS_serial_ISR);
taoqiuyang 1:e7245ffb4820 58
taoqiuyang 2:afb333543af5 59 while (1) {
taoqiuyang 2:afb333543af5 60 led1 = !led1;
taoqiuyang 5:451b8203ef99 61 wait(0.2);
taoqiuyang 0:f4d390c06705 62 }
taoqiuyang 0:f4d390c06705 63 }