Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@3:32e67d121c7f, 2013-07-12 (annotated)
- Committer:
- yuhangzhu
- Date:
- Fri Jul 12 20:02:01 2013 +0000
- Revision:
- 3:32e67d121c7f
- Parent:
- 2:45db4f4ca70d
- Child:
- 4:e8142db2bbfd
line buffer first trial 0.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yuhangzhu | 0:249f6f78cd05 | 1 | #include "mbed.h" |
yuhangzhu | 0:249f6f78cd05 | 2 | #include "menu.h" |
yuhangzhu | 0:249f6f78cd05 | 3 | #include "parameters.h" |
yuhangzhu | 3:32e67d121c7f | 4 | #include "handlers.h" |
yuhangzhu | 0:249f6f78cd05 | 5 | |
yuhangzhu | 0:249f6f78cd05 | 6 | Serial pc(USBTX, USBRX); |
yuhangzhu | 2:45db4f4ca70d | 7 | |
yuhangzhu | 3:32e67d121c7f | 8 | char recv; |
yuhangzhu | 2:45db4f4ca70d | 9 | int state; |
yuhangzhu | 3:32e67d121c7f | 10 | unsigned char cha1_pha, cha2_pha; |
yuhangzhu | 3:32e67d121c7f | 11 | unsigned char cha1_amp, cha2_amp; |
yuhangzhu | 3:32e67d121c7f | 12 | short spi_data; |
yuhangzhu | 3:32e67d121c7f | 13 | char line_buf[4]; //line_buf[3] is used to indicate if it's empty 0 empty 1 not |
yuhangzhu | 3:32e67d121c7f | 14 | int line_pt; |
yuhangzhu | 2:45db4f4ca70d | 15 | |
yuhangzhu | 0:249f6f78cd05 | 16 | int main() { |
yuhangzhu | 0:249f6f78cd05 | 17 | |
yuhangzhu | 0:249f6f78cd05 | 18 | pc.baud(115200); //config buad rate |
yuhangzhu | 1:cb6811ef87de | 19 | state = MODE_IDLE; |
yuhangzhu | 3:32e67d121c7f | 20 | line_buf[3] = 0; |
yuhangzhu | 3:32e67d121c7f | 21 | line_buf[2] = 255; |
yuhangzhu | 3:32e67d121c7f | 22 | line_buf[1] = 255; |
yuhangzhu | 3:32e67d121c7f | 23 | line_buf[0] = 255; |
yuhangzhu | 0:249f6f78cd05 | 24 | |
yuhangzhu | 0:249f6f78cd05 | 25 | while(1) |
yuhangzhu | 0:249f6f78cd05 | 26 | { |
yuhangzhu | 1:cb6811ef87de | 27 | switch(state) |
yuhangzhu | 0:249f6f78cd05 | 28 | { |
yuhangzhu | 1:cb6811ef87de | 29 | case MODE_IDLE: |
yuhangzhu | 1:cb6811ef87de | 30 | pc.printf("%s", main_menu); |
yuhangzhu | 3:32e67d121c7f | 31 | recv = pc.getc(); |
yuhangzhu | 3:32e67d121c7f | 32 | mode_idle_handler(&state, recv); |
yuhangzhu | 3:32e67d121c7f | 33 | //pc.printf("%d", state); |
yuhangzhu | 3:32e67d121c7f | 34 | break; |
yuhangzhu | 3:32e67d121c7f | 35 | case MODE_CHA1PHA: |
yuhangzhu | 3:32e67d121c7f | 36 | pc.printf("%s", cmd1); |
yuhangzhu | 3:32e67d121c7f | 37 | line_buf[3] = 0; |
yuhangzhu | 3:32e67d121c7f | 38 | line_pt = 0; |
yuhangzhu | 3:32e67d121c7f | 39 | |
yuhangzhu | 3:32e67d121c7f | 40 | while(1) |
yuhangzhu | 3:32e67d121c7f | 41 | { |
yuhangzhu | 3:32e67d121c7f | 42 | recv = pc.getc(); |
yuhangzhu | 3:32e67d121c7f | 43 | if(recv == 13) |
yuhangzhu | 3:32e67d121c7f | 44 | { |
yuhangzhu | 3:32e67d121c7f | 45 | if(line_pt == 0) |
yuhangzhu | 3:32e67d121c7f | 46 | line_buf[3] = 0; |
yuhangzhu | 3:32e67d121c7f | 47 | else |
yuhangzhu | 3:32e67d121c7f | 48 | line_buf[3] = 1; |
yuhangzhu | 3:32e67d121c7f | 49 | |
yuhangzhu | 3:32e67d121c7f | 50 | break; //enter pressed |
yuhangzhu | 3:32e67d121c7f | 51 | } |
yuhangzhu | 3:32e67d121c7f | 52 | else if(recv == 8) |
yuhangzhu | 3:32e67d121c7f | 53 | { |
yuhangzhu | 3:32e67d121c7f | 54 | pc.putc(8); |
yuhangzhu | 3:32e67d121c7f | 55 | pc.putc(32); |
yuhangzhu | 3:32e67d121c7f | 56 | pc.putc(8); |
yuhangzhu | 3:32e67d121c7f | 57 | if(line_pt == 0) |
yuhangzhu | 3:32e67d121c7f | 58 | line_buf[0] = 255; |
yuhangzhu | 3:32e67d121c7f | 59 | else if(line_pt > 0) |
yuhangzhu | 3:32e67d121c7f | 60 | { |
yuhangzhu | 3:32e67d121c7f | 61 | line_buf[line_pt] = 255; |
yuhangzhu | 3:32e67d121c7f | 62 | line_pt --; |
yuhangzhu | 3:32e67d121c7f | 63 | } |
yuhangzhu | 3:32e67d121c7f | 64 | } |
yuhangzhu | 3:32e67d121c7f | 65 | else |
yuhangzhu | 3:32e67d121c7f | 66 | { |
yuhangzhu | 3:32e67d121c7f | 67 | pc.putc(recv); |
yuhangzhu | 3:32e67d121c7f | 68 | line_buf[line_pt] = recv; |
yuhangzhu | 3:32e67d121c7f | 69 | if(line_pt < 2) |
yuhangzhu | 3:32e67d121c7f | 70 | line_pt ++; |
yuhangzhu | 3:32e67d121c7f | 71 | } |
yuhangzhu | 3:32e67d121c7f | 72 | } |
yuhangzhu | 3:32e67d121c7f | 73 | |
yuhangzhu | 3:32e67d121c7f | 74 | state = MODE_IDLE; |
yuhangzhu | 3:32e67d121c7f | 75 | break; |
yuhangzhu | 3:32e67d121c7f | 76 | case MODE_CHA1AMP: |
yuhangzhu | 3:32e67d121c7f | 77 | pc.printf("%s", cmd2); |
yuhangzhu | 3:32e67d121c7f | 78 | state = MODE_IDLE; |
yuhangzhu | 0:249f6f78cd05 | 79 | break; |
yuhangzhu | 1:cb6811ef87de | 80 | } |
yuhangzhu | 0:249f6f78cd05 | 81 | |
yuhangzhu | 0:249f6f78cd05 | 82 | |
yuhangzhu | 0:249f6f78cd05 | 83 | } |
yuhangzhu | 0:249f6f78cd05 | 84 | |
yuhangzhu | 0:249f6f78cd05 | 85 | |
yuhangzhu | 0:249f6f78cd05 | 86 | return 0; |
yuhangzhu | 0:249f6f78cd05 | 87 | } |