Ben Katz
/
Hobbyking_Cheetah_V1
FOC Implementation for putting multirotor motors in robots
Inverter/Inverter.h@14:80ce59119d93, 2016-10-31 (annotated)
- Committer:
- benkatz
- Date:
- Mon Oct 31 16:48:16 2016 +0000
- Revision:
- 14:80ce59119d93
- Parent:
- 0:4e1c4df6aabd
Misc. changes. Finally fixed transforms (turns out B and C current measurements were accidentally swapped)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
benkatz | 0:4e1c4df6aabd | 1 | #ifndef INVERTER_H |
benkatz | 0:4e1c4df6aabd | 2 | #define INVERTER_H |
benkatz | 0:4e1c4df6aabd | 3 | #include "FastPWM.h" |
benkatz | 0:4e1c4df6aabd | 4 | #include "mbed.h" |
benkatz | 0:4e1c4df6aabd | 5 | |
benkatz | 0:4e1c4df6aabd | 6 | |
benkatz | 0:4e1c4df6aabd | 7 | class Inverter{ |
benkatz | 0:4e1c4df6aabd | 8 | public: |
benkatz | 0:4e1c4df6aabd | 9 | Inverter(PinName PinA, PinName PinB, PinName PinC, PinName PinEnable, float I_Scale, float Period); |
benkatz | 0:4e1c4df6aabd | 10 | void SetDTC(float DTC_A, float DTC_B, float DTC_C); |
benkatz | 0:4e1c4df6aabd | 11 | void EnableInverter(); |
benkatz | 0:4e1c4df6aabd | 12 | void DisableInverter(); |
benkatz | 0:4e1c4df6aabd | 13 | void InitCurrentSense(); |
benkatz | 0:4e1c4df6aabd | 14 | void SampleCurrent(); |
benkatz | 0:4e1c4df6aabd | 15 | void GetCurrent(float *A, float *B, float *C); |
benkatz | 0:4e1c4df6aabd | 16 | float I_A, I_B, I_C, _I_Scale; |
benkatz | 0:4e1c4df6aabd | 17 | |
benkatz | 0:4e1c4df6aabd | 18 | private: |
benkatz | 0:4e1c4df6aabd | 19 | float I_B_Offset, I_C_Offset; |
benkatz | 0:4e1c4df6aabd | 20 | void ZeroCurrent(void); |
benkatz | 0:4e1c4df6aabd | 21 | FastPWM *PWM_A, *PWM_B, *PWM_C; |
benkatz | 0:4e1c4df6aabd | 22 | DigitalOut *Enable, *Dbg; |
benkatz | 0:4e1c4df6aabd | 23 | AnalogIn *Current_B, *Current_C; |
benkatz | 0:4e1c4df6aabd | 24 | }; |
benkatz | 0:4e1c4df6aabd | 25 | |
benkatz | 0:4e1c4df6aabd | 26 | #endif |