Bayley Wang
/
dc_motor_control
bad dc motor controller with current mode
CommandProcessor/cmd_mode.cpp@0:2b1edabdd26b, 2019-02-03 (annotated)
- Committer:
- bwang
- Date:
- Sun Feb 03 03:38:05 2019 +0000
- Revision:
- 0:2b1edabdd26b
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 0:2b1edabdd26b | 1 | #include "mbed.h" |
bwang | 0:2b1edabdd26b | 2 | #include "CommandProcessor.h" |
bwang | 0:2b1edabdd26b | 3 | |
bwang | 0:2b1edabdd26b | 4 | #include "globals.h" |
bwang | 0:2b1edabdd26b | 5 | |
bwang | 0:2b1edabdd26b | 6 | void cmd_setp(Serial *pc, char *buf) { |
bwang | 0:2b1edabdd26b | 7 | float dtc = atof(buf); |
bwang | 0:2b1edabdd26b | 8 | if (dtc < 0.0f) dtc = 0.0f; |
bwang | 0:2b1edabdd26b | 9 | if (dtc > 1.0f) dtc = 1.0f; |
bwang | 0:2b1edabdd26b | 10 | user_cmd = dtc; |
bwang | 0:2b1edabdd26b | 11 | } |
bwang | 0:2b1edabdd26b | 12 | |
bwang | 0:2b1edabdd26b | 13 | void cmd_freq(Serial *pc, char *buf) { |
bwang | 0:2b1edabdd26b | 14 | float freq = atof(buf); |
bwang | 0:2b1edabdd26b | 15 | if (freq < 500.0f) freq = 500.0f; |
bwang | 0:2b1edabdd26b | 16 | if (freq > 10000.0f) freq = 10000.0f; |
bwang | 0:2b1edabdd26b | 17 | TIM1->ARR = (int) ((float) 9e7 / freq); |
bwang | 0:2b1edabdd26b | 18 | } |
bwang | 0:2b1edabdd26b | 19 | |
bwang | 0:2b1edabdd26b | 20 | void cmd_src(Serial *pc, char *buf) { |
bwang | 0:2b1edabdd26b | 21 | int n = str_to_src(buf); |
bwang | 0:2b1edabdd26b | 22 | if (n < 0) { |
bwang | 0:2b1edabdd26b | 23 | pc->printf("%s\n", "Invalid Source"); |
bwang | 0:2b1edabdd26b | 24 | return; |
bwang | 0:2b1edabdd26b | 25 | } |
bwang | 0:2b1edabdd26b | 26 | BREMS_src = n; |
bwang | 0:2b1edabdd26b | 27 | pc->printf("Set source to %s\n", src_to_str(n)); |
bwang | 0:2b1edabdd26b | 28 | } |
bwang | 0:2b1edabdd26b | 29 | |
bwang | 0:2b1edabdd26b | 30 | void cmd_op(Serial *pc, char *buf) { |
bwang | 0:2b1edabdd26b | 31 | int n = str_to_op(buf); |
bwang | 0:2b1edabdd26b | 32 | if (n < 0) { |
bwang | 0:2b1edabdd26b | 33 | pc->printf("%s\n", "Invalid operation"); |
bwang | 0:2b1edabdd26b | 34 | return; |
bwang | 0:2b1edabdd26b | 35 | } |
bwang | 0:2b1edabdd26b | 36 | BREMS_op = n; |
bwang | 0:2b1edabdd26b | 37 | pc->printf("Set operation to %s\n", op_to_str(n)); |
bwang | 0:2b1edabdd26b | 38 | } |
bwang | 0:2b1edabdd26b | 39 |