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:
6:99ee0ce47fb2
Child:
7:76d6ceb23e0d
uguu;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bwang 1:1f58bdcf2956 1 #ifndef __CORE_H
bwang 1:1f58bdcf2956 2 #define __CORE_H
bwang 1:1f58bdcf2956 3
bwang 1:1f58bdcf2956 4 #include "includes.h"
bwang 1:1f58bdcf2956 5 #include "sensors.h"
bwang 1:1f58bdcf2956 6
bwang 1:1f58bdcf2956 7 class Motor;
bwang 1:1f58bdcf2956 8 class Inverter;
bwang 1:1f58bdcf2956 9 class CurrentSensor;
bwang 1:1f58bdcf2956 10 class VoltageSensor;
bwang 1:1f58bdcf2956 11 class PositionSensor;
bwang 1:1f58bdcf2956 12 class TempSensor;
bwang 1:1f58bdcf2956 13
bwang 1:1f58bdcf2956 14 class Motor {
bwang 1:1f58bdcf2956 15 public:
nki 6:99ee0ce47fb2 16 Motor(CurrentSensor *sense_c, CurrentSensor *sense_b, PositionSensor *sense_p, TempSensor *sense_t);
bwang 1:1f58bdcf2956 17 void Config(int num_poles, float kv);
nki 6:99ee0ce47fb2 18 float UpdateCurrentC();
bwang 1:1f58bdcf2956 19 float UpdateCurrentB();
bwang 1:1f58bdcf2956 20 float UpdatePosition();
bwang 1:1f58bdcf2956 21 float UpdateTemp();
bwang 1:1f58bdcf2956 22 void UpdateState();
bwang 1:1f58bdcf2956 23 public:
nki 6:99ee0ce47fb2 24 float angle, I_c, I_b, temp;
bwang 1:1f58bdcf2956 25 private:
nki 6:99ee0ce47fb2 26 CurrentSensor *_sense_c,*_sense_b;
bwang 1:1f58bdcf2956 27 PositionSensor *_sense_p;
bwang 1:1f58bdcf2956 28 TempSensor *_sense_t;
bwang 1:1f58bdcf2956 29 int _num_poles;
bwang 1:1f58bdcf2956 30 float _kv;
bwang 1:1f58bdcf2956 31 };
bwang 1:1f58bdcf2956 32
bwang 1:1f58bdcf2956 33 class Inverter {
bwang 1:1f58bdcf2956 34 public:
bwang 1:1f58bdcf2956 35 Inverter(PinName ph_a, PinName ph_b, PinName ph_c, PinName en, VoltageSensor *sense_bus, TempSensor *sense_t);
bwang 1:1f58bdcf2956 36 void SetDtcA(float dtc);
bwang 1:1f58bdcf2956 37 void SetDtcB(float dtc);
bwang 1:1f58bdcf2956 38 void SetDtcC(float dtc);
bwang 1:1f58bdcf2956 39 void Disable();
bwang 1:1f58bdcf2956 40 void Enable();
bwang 1:1f58bdcf2956 41 float UpdateVbus();
bwang 1:1f58bdcf2956 42 float UpdateTemp();
bwang 1:1f58bdcf2956 43 public:
bwang 1:1f58bdcf2956 44 float dtcA, dtcB, dtcC;
bwang 1:1f58bdcf2956 45 float v_bus, temp;
nki 6:99ee0ce47fb2 46 float va, vb; //debug
bwang 1:1f58bdcf2956 47 private:
bwang 1:1f58bdcf2956 48 PwmOut *_pwm_a, *_pwm_b, *_pwm_c;
bwang 1:1f58bdcf2956 49 DigitalOut *_en;
bwang 1:1f58bdcf2956 50 VoltageSensor *_sense_bus;
bwang 1:1f58bdcf2956 51 TempSensor *_sense_t;
bwang 1:1f58bdcf2956 52 };
bwang 1:1f58bdcf2956 53
bwang 1:1f58bdcf2956 54 class User {
bwang 1:1f58bdcf2956 55 public:
bwang 1:1f58bdcf2956 56 User(Throttle *throttle) {_throttle = throttle;}
bwang 1:1f58bdcf2956 57 void UpdateThrottle() {throttle = _throttle->GetThrottle();}
bwang 1:1f58bdcf2956 58 void UpdateState() {UpdateThrottle();}
bwang 1:1f58bdcf2956 59 public:
bwang 1:1f58bdcf2956 60 float throttle;
bwang 1:1f58bdcf2956 61 private:
bwang 1:1f58bdcf2956 62 Throttle *_throttle;
bwang 1:1f58bdcf2956 63 };
bwang 1:1f58bdcf2956 64
bwang 1:1f58bdcf2956 65 #endif