A serial parser for a specific project
Fork of Serial_HelloWorld_Mbed by
main.cpp@6:da101b92bc2d, 2015-07-14 (annotated)
- Committer:
- philipgoosen
- Date:
- Tue Jul 14 14:22:51 2015 +0000
- Revision:
- 6:da101b92bc2d
- Parent:
- 5:1ba2b0e9e582
- Child:
- 7:d25708589910
Renamed and added functions;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 0:879aa9d0247b | 1 | #include "mbed.h" |
philipgoosen | 5:1ba2b0e9e582 | 2 | // Data parser by Philip Goosen |
mbed_official | 0:879aa9d0247b | 3 | |
philipgoosen | 3:3399899d714b | 4 | /*#define TX USBTX |
philipgoosen | 3:3399899d714b | 5 | #define RX USBRX*/ |
philipgoosen | 3:3399899d714b | 6 | |
philipgoosen | 4:178b04ae427e | 7 | #define TX PA_2 |
philipgoosen | 4:178b04ae427e | 8 | #define RX PA_3 |
philipgoosen | 2:dcca46d7ca21 | 9 | |
philipgoosen | 2:dcca46d7ca21 | 10 | Serial pc(TX, RX); // tx, rx |
philipgoosen | 1:49996c8d2982 | 11 | DigitalOut led(LED1); |
mbed_official | 0:879aa9d0247b | 12 | |
philipgoosen | 6:da101b92bc2d | 13 | int isDigit(char digit) |
philipgoosen | 2:dcca46d7ca21 | 14 | { |
philipgoosen | 2:dcca46d7ca21 | 15 | if (digit >= '0' or digit <= '9') |
philipgoosen | 2:dcca46d7ca21 | 16 | { |
philipgoosen | 2:dcca46d7ca21 | 17 | return 1; |
philipgoosen | 2:dcca46d7ca21 | 18 | } |
philipgoosen | 2:dcca46d7ca21 | 19 | else |
philipgoosen | 2:dcca46d7ca21 | 20 | { |
philipgoosen | 2:dcca46d7ca21 | 21 | return 0; |
philipgoosen | 2:dcca46d7ca21 | 22 | } |
philipgoosen | 2:dcca46d7ca21 | 23 | } |
philipgoosen | 2:dcca46d7ca21 | 24 | |
philipgoosen | 5:1ba2b0e9e582 | 25 | int isLetter(char let) // Only works for upper case |
philipgoosen | 5:1ba2b0e9e582 | 26 | { |
philipgoosen | 5:1ba2b0e9e582 | 27 | if (let >= 'A' or let <= 'Z') |
philipgoosen | 5:1ba2b0e9e582 | 28 | { |
philipgoosen | 5:1ba2b0e9e582 | 29 | return 1; |
philipgoosen | 5:1ba2b0e9e582 | 30 | } |
philipgoosen | 6:da101b92bc2d | 31 | else |
philipgoosen | 6:da101b92bc2d | 32 | { |
philipgoosen | 6:da101b92bc2d | 33 | return 0; |
philipgoosen | 6:da101b92bc2d | 34 | } |
philipgoosen | 6:da101b92bc2d | 35 | } |
philipgoosen | 6:da101b92bc2d | 36 | |
philipgoosen | 6:da101b92bc2d | 37 | int isAlpha(char c) |
philipgoosen | 6:da101b92bc2d | 38 | { |
philipgoosen | 6:da101b92bc2d | 39 | if( isDigit(c) or isLetter(c) ) |
philipgoosen | 6:da101b92bc2d | 40 | { |
philipgoosen | 6:da101b92bc2d | 41 | return 1; |
philipgoosen | 6:da101b92bc2d | 42 | } |
philipgoosen | 6:da101b92bc2d | 43 | else |
philipgoosen | 6:da101b92bc2d | 44 | { |
philipgoosen | 6:da101b92bc2d | 45 | return 0; |
philipgoosen | 6:da101b92bc2d | 46 | } |
philipgoosen | 5:1ba2b0e9e582 | 47 | } |
philipgoosen | 5:1ba2b0e9e582 | 48 | |
philipgoosen | 2:dcca46d7ca21 | 49 | int toDigit(char c) |
philipgoosen | 2:dcca46d7ca21 | 50 | { |
philipgoosen | 2:dcca46d7ca21 | 51 | return (c - '0'); |
philipgoosen | 2:dcca46d7ca21 | 52 | } |
philipgoosen | 2:dcca46d7ca21 | 53 | |
philipgoosen | 2:dcca46d7ca21 | 54 | int main() |
philipgoosen | 2:dcca46d7ca21 | 55 | { |
philipgoosen | 6:da101b92bc2d | 56 | int motor = 0; |
philipgoosen | 6:da101b92bc2d | 57 | int direction = 0; |
philipgoosen | 6:da101b92bc2d | 58 | int speed = 0; |
philipgoosen | 6:da101b92bc2d | 59 | |
philipgoosen | 1:49996c8d2982 | 60 | led=1; |
philipgoosen | 1:49996c8d2982 | 61 | wait(0.5); |
philipgoosen | 1:49996c8d2982 | 62 | led=0; |
philipgoosen | 1:49996c8d2982 | 63 | pc.baud(115200); |
philipgoosen | 2:dcca46d7ca21 | 64 | pc.printf("Philip's program"); |
philipgoosen | 2:dcca46d7ca21 | 65 | while(1) |
philipgoosen | 2:dcca46d7ca21 | 66 | { |
philipgoosen | 1:49996c8d2982 | 67 | //pc.putc(pc.getc() + 1); |
philipgoosen | 4:178b04ae427e | 68 | if (pc.getc() == '$' && pc.getc() == '#') |
philipgoosen | 1:49996c8d2982 | 69 | { |
philipgoosen | 4:178b04ae427e | 70 | /*led=1; |
philipgoosen | 1:49996c8d2982 | 71 | wait(1); |
philipgoosen | 1:49996c8d2982 | 72 | led=0; |
philipgoosen | 1:49996c8d2982 | 73 | led=1; |
philipgoosen | 1:49996c8d2982 | 74 | wait(1); |
philipgoosen | 4:178b04ae427e | 75 | led=0;*/ |
philipgoosen | 2:dcca46d7ca21 | 76 | |
philipgoosen | 2:dcca46d7ca21 | 77 | char c = pc.getc();// Gets a character from the computer that should be a digit from 0 - 9 |
philipgoosen | 2:dcca46d7ca21 | 78 | |
philipgoosen | 6:da101b92bc2d | 79 | //int count = toDigit(c); |
philipgoosen | 2:dcca46d7ca21 | 80 | int x = 0; |
philipgoosen | 2:dcca46d7ca21 | 81 | |
philipgoosen | 6:da101b92bc2d | 82 | while (x < 3) |
philipgoosen | 2:dcca46d7ca21 | 83 | { |
philipgoosen | 2:dcca46d7ca21 | 84 | pc.printf("%d ", x); |
philipgoosen | 3:3399899d714b | 85 | x++; |
philipgoosen | 2:dcca46d7ca21 | 86 | } |
philipgoosen | 2:dcca46d7ca21 | 87 | //while loop with counter |
philipgoosen | 1:49996c8d2982 | 88 | } |
mbed_official | 0:879aa9d0247b | 89 | } |
mbed_official | 0:879aa9d0247b | 90 | } |