GPS and IMU reading works
Dependencies: mbed Servo SDFileSystem
main.cpp@8:1f5a44bade4d, 2015-08-23 (annotated)
- 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?
User | Revision | Line number | New 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 | } |