A serial parser for a specific project
Fork of Serial_HelloWorld_Mbed by
main.cpp@3:3399899d714b, 2015-07-14 (annotated)
- Committer:
- philipgoosen
- Date:
- Tue Jul 14 12:31:38 2015 +0000
- Revision:
- 3:3399899d714b
- Parent:
- 2:dcca46d7ca21
- Child:
- 4:178b04ae427e
Changed serial port to external pins;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 0:879aa9d0247b | 1 | #include "mbed.h" |
mbed_official | 0:879aa9d0247b | 2 | |
philipgoosen | 3:3399899d714b | 3 | /*#define TX USBTX |
philipgoosen | 3:3399899d714b | 4 | #define RX USBRX*/ |
philipgoosen | 3:3399899d714b | 5 | |
philipgoosen | 3:3399899d714b | 6 | #define TX D1 |
philipgoosen | 3:3399899d714b | 7 | #define RX D0 |
philipgoosen | 2:dcca46d7ca21 | 8 | |
philipgoosen | 2:dcca46d7ca21 | 9 | Serial pc(TX, RX); // tx, rx |
philipgoosen | 1:49996c8d2982 | 10 | DigitalOut led(LED1); |
mbed_official | 0:879aa9d0247b | 11 | |
philipgoosen | 2:dcca46d7ca21 | 12 | int checkDigit(char digit) |
philipgoosen | 2:dcca46d7ca21 | 13 | { |
philipgoosen | 2:dcca46d7ca21 | 14 | if (digit >= '0' or digit <= '9') |
philipgoosen | 2:dcca46d7ca21 | 15 | { |
philipgoosen | 2:dcca46d7ca21 | 16 | return 1; |
philipgoosen | 2:dcca46d7ca21 | 17 | } |
philipgoosen | 2:dcca46d7ca21 | 18 | else |
philipgoosen | 2:dcca46d7ca21 | 19 | { |
philipgoosen | 2:dcca46d7ca21 | 20 | return 0; |
philipgoosen | 2:dcca46d7ca21 | 21 | } |
philipgoosen | 2:dcca46d7ca21 | 22 | } |
philipgoosen | 2:dcca46d7ca21 | 23 | |
philipgoosen | 2:dcca46d7ca21 | 24 | int toDigit(char c) |
philipgoosen | 2:dcca46d7ca21 | 25 | { |
philipgoosen | 2:dcca46d7ca21 | 26 | return (c - '0'); |
philipgoosen | 2:dcca46d7ca21 | 27 | } |
philipgoosen | 2:dcca46d7ca21 | 28 | |
philipgoosen | 2:dcca46d7ca21 | 29 | int main() |
philipgoosen | 2:dcca46d7ca21 | 30 | { |
philipgoosen | 1:49996c8d2982 | 31 | led=1; |
philipgoosen | 1:49996c8d2982 | 32 | wait(0.5); |
philipgoosen | 1:49996c8d2982 | 33 | led=0; |
philipgoosen | 1:49996c8d2982 | 34 | pc.baud(115200); |
philipgoosen | 2:dcca46d7ca21 | 35 | pc.printf("Philip's program"); |
philipgoosen | 2:dcca46d7ca21 | 36 | while(1) |
philipgoosen | 2:dcca46d7ca21 | 37 | { |
philipgoosen | 1:49996c8d2982 | 38 | //pc.putc(pc.getc() + 1); |
philipgoosen | 1:49996c8d2982 | 39 | if (pc.getc() == '$' && pc.getc() == '%') |
philipgoosen | 1:49996c8d2982 | 40 | { |
philipgoosen | 1:49996c8d2982 | 41 | led=1; |
philipgoosen | 1:49996c8d2982 | 42 | wait(1); |
philipgoosen | 1:49996c8d2982 | 43 | led=0; |
philipgoosen | 1:49996c8d2982 | 44 | led=1; |
philipgoosen | 1:49996c8d2982 | 45 | wait(1); |
philipgoosen | 1:49996c8d2982 | 46 | led=0; |
philipgoosen | 2:dcca46d7ca21 | 47 | |
philipgoosen | 2:dcca46d7ca21 | 48 | char c = pc.getc();// Gets a character from the computer that should be a digit from 0 - 9 |
philipgoosen | 2:dcca46d7ca21 | 49 | |
philipgoosen | 2:dcca46d7ca21 | 50 | if (checkDigit(c)) |
philipgoosen | 2:dcca46d7ca21 | 51 | { |
philipgoosen | 2:dcca46d7ca21 | 52 | int count = toDigit(c); |
philipgoosen | 2:dcca46d7ca21 | 53 | int x = 0; |
philipgoosen | 2:dcca46d7ca21 | 54 | |
philipgoosen | 2:dcca46d7ca21 | 55 | while (x < count) |
philipgoosen | 2:dcca46d7ca21 | 56 | { |
philipgoosen | 2:dcca46d7ca21 | 57 | pc.printf("%d ", x); |
philipgoosen | 3:3399899d714b | 58 | x++; |
philipgoosen | 2:dcca46d7ca21 | 59 | } |
philipgoosen | 2:dcca46d7ca21 | 60 | //while loop with counter |
philipgoosen | 2:dcca46d7ca21 | 61 | } |
philipgoosen | 1:49996c8d2982 | 62 | } |
mbed_official | 0:879aa9d0247b | 63 | } |
mbed_official | 0:879aa9d0247b | 64 | } |