yup

Dependencies:   mbed

Fork of analoghalls by Bayley Wang

Committer:
nki
Date:
Thu Feb 26 14:09:19 2015 +0000
Revision:
6:4960629abb90
Parent:
5:eeb8af99cb6c
LOLOL PROPROTIONAL CURENT CONTROL;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nki 0:9753f3c2e5ca 1 #include "mbed.h"
nki 0:9753f3c2e5ca 2 #include "constants.h"
nki 0:9753f3c2e5ca 3 #include "shared.h"
nki 0:9753f3c2e5ca 4 #include "util.h"
nki 0:9753f3c2e5ca 5 #include "math.h"
bwang 1:70eed554399b 6 #include "isr.h"
nki 0:9753f3c2e5ca 7
nki 0:9753f3c2e5ca 8 Serial pc(SERIAL_TX, SERIAL_RX);
nki 0:9753f3c2e5ca 9
nki 5:eeb8af99cb6c 10
nki 0:9753f3c2e5ca 11 PwmOut pha(_PH_A);
nki 0:9753f3c2e5ca 12 PwmOut phb(_PH_B);
nki 0:9753f3c2e5ca 13 PwmOut phc(_PH_C);
nki 0:9753f3c2e5ca 14
nki 0:9753f3c2e5ca 15 DigitalOut en(_EN);
nki 0:9753f3c2e5ca 16
bwang 2:b5c19d4eddcc 17 DigitalIn dummy(D5);
bwang 2:b5c19d4eddcc 18
nki 0:9753f3c2e5ca 19 AnalogIn throttle(_THROTTLE);
nki 0:9753f3c2e5ca 20 AnalogIn analoga(_ANALOGA);
nki 0:9753f3c2e5ca 21 AnalogIn analogb(_ANALOGB);
nki 0:9753f3c2e5ca 22
nki 5:eeb8af99cb6c 23 AnalogIn ia(_IA);
nki 5:eeb8af99cb6c 24 AnalogIn ib(_IB);
nki 5:eeb8af99cb6c 25
nki 0:9753f3c2e5ca 26 Motor* motor;
nki 0:9753f3c2e5ca 27
bwang 3:86ccde39f61b 28 #ifdef __DEBUG
bwang 3:86ccde39f61b 29 float *fbuffer;
bwang 3:86ccde39f61b 30 int bufidx = 0;
bwang 4:f18f6bc5e1fd 31 int skipidx = 0;
bwang 3:86ccde39f61b 32 #endif
bwang 2:b5c19d4eddcc 33 #ifdef __USE_THROTTLE
bwang 2:b5c19d4eddcc 34 Ticker dtc_upd_ticker;
bwang 2:b5c19d4eddcc 35 Ticker throttle_upd_ticker;
nki 5:eeb8af99cb6c 36 Ticker isense_upd_ticker;
bwang 2:b5c19d4eddcc 37 #endif
nki 0:9753f3c2e5ca 38
bwang 1:70eed554399b 39 float throttle_read;
nki 5:eeb8af99cb6c 40 float ia_read;
nki 5:eeb8af99cb6c 41 float ib_read;
nki 0:9753f3c2e5ca 42
bwang 4:f18f6bc5e1fd 43 int main() {
nki 5:eeb8af99cb6c 44 pc.baud(115200);
bwang 4:f18f6bc5e1fd 45 #ifdef __DEBUG
bwang 4:f18f6bc5e1fd 46 pc.printf("%s\n", "Debug mode ON");
bwang 4:f18f6bc5e1fd 47 #endif
nki 0:9753f3c2e5ca 48 en = 1;
bwang 3:86ccde39f61b 49 #ifdef __DEBUG
bwang 4:f18f6bc5e1fd 50 fbuffer = (float*)malloc(DBG_BUF_SZ*sizeof(float));
bwang 3:86ccde39f61b 51 #endif
nki 0:9753f3c2e5ca 52 initTimers();
nki 0:9753f3c2e5ca 53 initPins();
nki 0:9753f3c2e5ca 54 initData();
nki 0:9753f3c2e5ca 55
nki 0:9753f3c2e5ca 56 while(1) {
bwang 2:b5c19d4eddcc 57 #ifdef __USE_THROTTLE
bwang 1:70eed554399b 58 throttle_read = throttle;
bwang 2:b5c19d4eddcc 59 #endif
nki 5:eeb8af99cb6c 60 ia_read = ia;
nki 5:eeb8af99cb6c 61 ib_read = ib;
nki 5:eeb8af99cb6c 62 isense_update();
nki 6:4960629abb90 63 pc.printf("%f",motor->command);
nki 6:4960629abb90 64 pc.printf("\t");
nki 5:eeb8af99cb6c 65 pc.printf("%f",motor->current);
nki 6:4960629abb90 66 pc.printf("\t");
nki 6:4960629abb90 67 pc.printf("%f",motor->dtc);
nki 5:eeb8af99cb6c 68 pc.printf("\n\r");
bwang 1:70eed554399b 69 pos_update();
bwang 2:b5c19d4eddcc 70 #ifndef __USE_THROTTLE
bwang 2:b5c19d4eddcc 71 dtc_update();
bwang 2:b5c19d4eddcc 72 #endif
bwang 3:86ccde39f61b 73 #ifdef __DEBUG
bwang 3:86ccde39f61b 74 if (motor->debug_stop) break;
bwang 3:86ccde39f61b 75 #endif
nki 0:9753f3c2e5ca 76 }
bwang 3:86ccde39f61b 77 #ifdef __DEBUG
bwang 4:f18f6bc5e1fd 78 for (int i = 0; i < DBG_BUF_SZ; i++) {
bwang 3:86ccde39f61b 79 pc.printf("%f,", fbuffer[i]);
bwang 3:86ccde39f61b 80 }
bwang 3:86ccde39f61b 81 #endif
nki 0:9753f3c2e5ca 82 }