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.
Fork of priustroller by
core.h@6:99ee0ce47fb2, 2015-03-04 (annotated)
- Committer:
- nki
- Date:
- Wed Mar 04 15:33:32 2015 +0000
- Revision:
- 6:99ee0ce47fb2
- Parent:
- 1:1f58bdcf2956
- Child:
- 7:76d6ceb23e0d
3/4;
Who changed what in which revision?
User | Revision | Line number | New 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 |