working-est copy with class-based code. still open loop

Dependencies:   mbed

Fork of analoghalls6 by N K

Committer:
nki
Date:
Sun Mar 08 00:45:28 2015 +0000
Revision:
10:b4abecccec7a
Parent:
9:d3b70c15baa9
uguu;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bwang 0:54cf32d35f4d 1 #include "includes.h"
bwang 1:1f58bdcf2956 2 #include "core.h"
bwang 1:1f58bdcf2956 3 #include "sensors.h"
bwang 1:1f58bdcf2956 4 #include "meta.h"
bwang 0:54cf32d35f4d 5
nki 10:b4abecccec7a 6 void txCallback() {
nki 10:b4abecccec7a 7 }
nki 10:b4abecccec7a 8
nki 10:b4abecccec7a 9 // This function is called when a character goes into the RX buffer.
nki 10:b4abecccec7a 10 void rxCallback() {
nki 10:b4abecccec7a 11 if(pc->getc()=='r'){
nki 10:b4abecccec7a 12 acquire = 1;
nki 10:b4abecccec7a 13 pc->putc('3');
nki 10:b4abecccec7a 14 }
nki 10:b4abecccec7a 15 if((pc->getc()=='d')&(acquire==0)&(_user->throttle==0)){
nki 10:b4abecccec7a 16 for (int i = 0; i < 10000; i++) {
nki 10:b4abecccec7a 17 pc->printf("%f,", fbuffer[i]);
nki 10:b4abecccec7a 18 }
nki 10:b4abecccec7a 19 }
nki 10:b4abecccec7a 20 pc->putc(pc->getc());
nki 10:b4abecccec7a 21 }
nki 10:b4abecccec7a 22
nki 10:b4abecccec7a 23
nki 10:b4abecccec7a 24
nki 10:b4abecccec7a 25
nki 10:b4abecccec7a 26
nki 10:b4abecccec7a 27
nki 4:fdadf4a3577a 28 Serial *pc = new Serial(SERIAL_TX, SERIAL_RX);
nki 6:99ee0ce47fb2 29 float test_alpha = 0;
nki 6:99ee0ce47fb2 30 float test_beta = 0;
nki 6:99ee0ce47fb2 31
nki 9:d3b70c15baa9 32 float d_mean = 0;
nki 9:d3b70c15baa9 33 float q_mean = 0;
nki 6:99ee0ce47fb2 34
nki 6:99ee0ce47fb2 35 float test_DtcA;
nki 6:99ee0ce47fb2 36 float test_DtcB;
nki 6:99ee0ce47fb2 37 float test_DtcC;
nki 4:fdadf4a3577a 38
nki 10:b4abecccec7a 39 float *fbuffer;
nki 10:b4abecccec7a 40 int acquire = 0;
nki 10:b4abecccec7a 41 int bufidx = 0;
nki 10:b4abecccec7a 42 int bufsize = 10000;
nki 10:b4abecccec7a 43 int skip = 0;
nki 10:b4abecccec7a 44
bwang 0:54cf32d35f4d 45 int main() {
nki 4:fdadf4a3577a 46 pc->baud(115200);
nki 10:b4abecccec7a 47 pc->attach(&txCallback, Serial::TxIrq);
nki 10:b4abecccec7a 48 pc->attach(&rxCallback, Serial::RxIrq);
nki 6:99ee0ce47fb2 49 pc->printf("%s\n\r", "Init Serial Comm");
nki 10:b4abecccec7a 50
nki 10:b4abecccec7a 51 fbuffer = (float*)malloc(bufsize*sizeof(float));
nki 6:99ee0ce47fb2 52
nki 9:d3b70c15baa9 53 PositionSensor *sense_p = new AnalogHallPositionSensor(A4, A5, 0.249f, 0.497f, 0.231f, 0.499f, 205.0f);
nki 6:99ee0ce47fb2 54 CurrentSensor *sense_ic = new AnalogCurrentSensor(A1, 0.01);
bwang 0:54cf32d35f4d 55 CurrentSensor *sense_ib = new AnalogCurrentSensor(A2, 0.01);
bwang 0:54cf32d35f4d 56 VoltageSensor *sense_bus = new AnalogVoltageSensor(A5, 0.01);
bwang 0:54cf32d35f4d 57 TempSensor *sense_t_motor = new TempSensor();
bwang 0:54cf32d35f4d 58 TempSensor *sense_t_inverter = new TempSensor();
nki 10:b4abecccec7a 59 Throttle *throttle = new Throttle(A0, 0.8f, 3.0f);
bwang 0:54cf32d35f4d 60
nki 10:b4abecccec7a 61 PidController *pid_d = new PidController(0.001f, 0.1f, 0.0f, 1.0f, -1.0f);
nki 10:b4abecccec7a 62 PidController *pid_q = new PidController (0.001f, 0.1f, 0.0f, 5.0f, -5.0f);
bwang 3:0a2396597e0d 63
nki 6:99ee0ce47fb2 64 Motor *motor = new Motor(sense_ic, sense_ib, sense_p, sense_t_motor);
bwang 0:54cf32d35f4d 65 Inverter *inverter = new Inverter(D6, D13, D3, D8, sense_bus, sense_t_inverter);
bwang 0:54cf32d35f4d 66 User *user = new User(throttle);
bwang 3:0a2396597e0d 67 Modulator *modulator = new SinusoidalModulator(inverter);
bwang 3:0a2396597e0d 68 StatusUpdater *updater = new StatusUpdater(inverter, motor, user);
nki 6:99ee0ce47fb2 69 LoopDriver *driver = new LoopDriver(inverter, motor, user, pid_d, pid_q, modulator, 1.0f, 5000);
bwang 0:54cf32d35f4d 70
bwang 0:54cf32d35f4d 71 motor->Config(4, 20.0f);
nki 9:d3b70c15baa9 72 updater->Config(5000, 100, 10);
nki 4:fdadf4a3577a 73
bwang 3:0a2396597e0d 74 driver->Start();
bwang 3:0a2396597e0d 75 updater->Start();
bwang 0:54cf32d35f4d 76 }