GPS and IMU reading works

Dependencies:   mbed Servo SDFileSystem

/media/uploads/taoqiuyang/img_2352.jpg

Committer:
dem123456789
Date:
Sun Aug 23 21:24:14 2015 +0000
Revision:
8:1f5a44bade4d
Parent:
7:e59de63ed8da
Child:
9:bf5939466e86
PC end added

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);
dem123456789 8:1f5a44bade4d 7 DigitalOut led4(LED4);
taoqiuyang 2:afb333543af5 8
taoqiuyang 2:afb333543af5 9 Serial pc(USBTX, USBRX);
taoqiuyang 2:afb333543af5 10 Serial IMU(p28, p27); // tx, rx
taoqiuyang 5:451b8203ef99 11 Serial GPS(p13, p14); // tx, rx
taoqiuyang 2:afb333543af5 12
taoqiuyang 2:afb333543af5 13 char IMU_message[256];
taoqiuyang 3:ab9f94d112c0 14 int IMU_message_counter=0;
taoqiuyang 5:451b8203ef99 15 char GPS_message[256];
taoqiuyang 5:451b8203ef99 16 int GPS_message_counter=0;
taoqiuyang 2:afb333543af5 17
taoqiuyang 4:37d118f2348c 18 void IMU_serial_ISR() {
taoqiuyang 3:ab9f94d112c0 19 char buf;
taoqiuyang 3:ab9f94d112c0 20
taoqiuyang 3:ab9f94d112c0 21 while (IMU.readable()) {
taoqiuyang 3:ab9f94d112c0 22 buf = IMU.getc();
taoqiuyang 3:ab9f94d112c0 23
taoqiuyang 3:ab9f94d112c0 24 IMU_message_counter+=1;
taoqiuyang 3:ab9f94d112c0 25 IMU_message[IMU_message_counter]=buf;
taoqiuyang 3:ab9f94d112c0 26
taoqiuyang 3:ab9f94d112c0 27 if (buf=='#'){
taoqiuyang 3:ab9f94d112c0 28 IMU_message_counter=0;
taoqiuyang 3:ab9f94d112c0 29 }
taoqiuyang 3:ab9f94d112c0 30
taoqiuyang 3:ab9f94d112c0 31 if (buf=='\n'){
taoqiuyang 3:ab9f94d112c0 32 int i;
taoqiuyang 3:ab9f94d112c0 33 for(i=0;i<=IMU_message_counter;i++){
dem123456789 8:1f5a44bade4d 34 //pc.putc(IMU_message[i]);
taoqiuyang 3:ab9f94d112c0 35 }
taoqiuyang 3:ab9f94d112c0 36 }
taoqiuyang 3:ab9f94d112c0 37 }
taoqiuyang 2:afb333543af5 38 led2 = !led2;
taoqiuyang 2:afb333543af5 39 }
taoqiuyang 0:f4d390c06705 40
dem123456789 8:1f5a44bade4d 41
taoqiuyang 5:451b8203ef99 42 void GPS_serial_ISR() {
taoqiuyang 5:451b8203ef99 43 char buf;
taoqiuyang 5:451b8203ef99 44
taoqiuyang 5:451b8203ef99 45 while (GPS.readable()) {
taoqiuyang 5:451b8203ef99 46 buf = GPS.getc();
taoqiuyang 5:451b8203ef99 47 //pc.putc(buf);
taoqiuyang 5:451b8203ef99 48 }
taoqiuyang 5:451b8203ef99 49
taoqiuyang 5:451b8203ef99 50 led3 = !led3;
taoqiuyang 5:451b8203ef99 51 }
taoqiuyang 3:ab9f94d112c0 52
dem123456789 8:1f5a44bade4d 53 void PC_serial_ISR() {
dem123456789 8:1f5a44bade4d 54 char buf;
dem123456789 8:1f5a44bade4d 55
dem123456789 8:1f5a44bade4d 56 while (pc.readable()) {
dem123456789 8:1f5a44bade4d 57 buf = pc.getc();
dem123456789 8:1f5a44bade4d 58 pc.putc(buf);
dem123456789 8:1f5a44bade4d 59 }
dem123456789 8:1f5a44bade4d 60
dem123456789 8:1f5a44bade4d 61 led4= !led4;
dem123456789 8:1f5a44bade4d 62 }
taoqiuyang 3:ab9f94d112c0 63
taoqiuyang 0:f4d390c06705 64 int main() {
taoqiuyang 2:afb333543af5 65 IMU.baud(57600);
taoqiuyang 4:37d118f2348c 66 IMU.attach(&IMU_serial_ISR);
taoqiuyang 5:451b8203ef99 67 GPS.baud(38400);
taoqiuyang 5:451b8203ef99 68 GPS.attach(&GPS_serial_ISR);
dem123456789 8:1f5a44bade4d 69 pc.baud(115200);
dem123456789 8:1f5a44bade4d 70 pc.attach(&PC_serial_ISR);
taoqiuyang 1:e7245ffb4820 71
taoqiuyang 2:afb333543af5 72 while (1) {
dem123456789 8:1f5a44bade4d 73
taoqiuyang 2:afb333543af5 74 led1 = !led1;
taoqiuyang 5:451b8203ef99 75 wait(0.2);
taoqiuyang 0:f4d390c06705 76 }
taoqiuyang 0:f4d390c06705 77 }