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_2 by
core/core.h@30:2b6d426f3bfc, 2015-03-15 (annotated)
- Committer:
- nki
- Date:
- Sun Mar 15 01:45:22 2015 +0000
- Revision:
- 30:2b6d426f3bfc
- Parent:
- 29:cb03760ba9ea
- Child:
- 33:e7b132029bae
New interrupt driven current-sensing; current sensors have a ~0.2A offset
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 | 29:cb03760ba9ea | 16 | Motor(PositionSensor *sense_p, TempSensor *sense_t); |
nki | 30:2b6d426f3bfc | 17 | void InitSensors(float ib_zero, float ic_zero, float scale); |
bwang | 1:1f58bdcf2956 | 18 | void Config(int num_poles, float kv); |
bwang | 11:dccbaa9274c5 | 19 | float GetCurrentC(); |
bwang | 11:dccbaa9274c5 | 20 | float GetCurrentB(); |
bwang | 11:dccbaa9274c5 | 21 | float GetPosition(); |
bwang | 11:dccbaa9274c5 | 22 | float GetTemp(); |
bwang | 1:1f58bdcf2956 | 23 | private: |
bwang | 1:1f58bdcf2956 | 24 | PositionSensor *_sense_p; |
bwang | 1:1f58bdcf2956 | 25 | TempSensor *_sense_t; |
bwang | 1:1f58bdcf2956 | 26 | int _num_poles; |
bwang | 1:1f58bdcf2956 | 27 | float _kv; |
nki | 29:cb03760ba9ea | 28 | float _ib, _ic; |
nki | 30:2b6d426f3bfc | 29 | float _ib_zero, _ic_zero; |
nki | 30:2b6d426f3bfc | 30 | float _scale; |
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 | 11:dccbaa9274c5 | 41 | float GetVbus(); |
bwang | 11:dccbaa9274c5 | 42 | float GetTemp(); |
bwang | 1:1f58bdcf2956 | 43 | private: |
bwang | 1:1f58bdcf2956 | 44 | PwmOut *_pwm_a, *_pwm_b, *_pwm_c; |
bwang | 1:1f58bdcf2956 | 45 | DigitalOut *_en; |
bwang | 1:1f58bdcf2956 | 46 | VoltageSensor *_sense_bus; |
bwang | 1:1f58bdcf2956 | 47 | TempSensor *_sense_t; |
bwang | 1:1f58bdcf2956 | 48 | }; |
bwang | 1:1f58bdcf2956 | 49 | |
bwang | 1:1f58bdcf2956 | 50 | class User { |
bwang | 1:1f58bdcf2956 | 51 | public: |
bwang | 1:1f58bdcf2956 | 52 | User(Throttle *throttle) {_throttle = throttle;} |
bwang | 1:1f58bdcf2956 | 53 | void UpdateThrottle() {throttle = _throttle->GetThrottle();} |
bwang | 1:1f58bdcf2956 | 54 | public: |
bwang | 1:1f58bdcf2956 | 55 | float throttle; |
bwang | 1:1f58bdcf2956 | 56 | private: |
bwang | 1:1f58bdcf2956 | 57 | Throttle *_throttle; |
bwang | 1:1f58bdcf2956 | 58 | }; |
bwang | 1:1f58bdcf2956 | 59 | |
bwang | 1:1f58bdcf2956 | 60 | #endif |