Myproject.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #ifndef __MYPROJECT_H_
  2. #define __MYPROJECT_H_
  3. #include <FU68xx_5.h>
  4. #include <FU68xx_5_Type.h>
  5. #include <Customer.h>
  6. #include <Parameter.h>
  7. #include <AddFunction.h>
  8. #include <DMA.h>
  9. #include <Protect.h>
  10. #include <ProtectSet.h>
  11. #include <Parameter.h>
  12. #include <VoltageCompensation.h>
  13. // math.h包含算术运算的数学函数
  14. #include <math.h>
  15. #include <Definition.h>
  16. typedef enum
  17. {
  18. mcReady = 0,
  19. mcInit = 1,
  20. mcCharge = 2,
  21. mcTailWind = 3,
  22. mcPosiCheck = 4,
  23. mcAlign = 5,
  24. mcStart = 6,
  25. mcRun = 7,
  26. mcStop = 8,
  27. mcFault = 9,
  28. mcBrake = 10
  29. }MotStaType;
  30. typedef union
  31. {
  32. uint8 SetMode; // 整个配置模式使能位
  33. struct
  34. {
  35. uint8 CalibFlag :1; // 电流校准的标志位
  36. uint8 AlignSetFlag :1; // 预定位配置标志位
  37. } SetFlag;
  38. }MotStaM;
  39. extern MotStaType mcState;
  40. extern MotStaM McStaSet;
  41. void CMP0_Init(void);
  42. void CMP3_Init(void);
  43. void CMP3_Interrupt_Init(void);
  44. void CMP5_Init(void);
  45. void Timer2_Init(void);
  46. void Timer3_Init(void);
  47. void Timer4_Init(void);
  48. void SPI_Init(void);
  49. void WatchDogConfig(uint32 value, uint8 Status);
  50. unsigned short CRC_Check(unsigned char start_sector , unsigned char offset_sector);
  51. typedef struct
  52. {
  53. int16 IuOffset; //Iu的偏置电压
  54. int32 IuOffsetSum; //Iu的偏置电压总和
  55. int16 IvOffset; //Iv的偏置电压
  56. int32 IvOffsetSum; //Iv的偏置电压总和
  57. int16 Iw_busOffset; //Iw或Ibus的偏置电压
  58. int32 Iw_busOffsetSum;//Iw或Ibus的偏置电压总和
  59. int16 OffsetCount; //偏置电压采集计数
  60. int8 OffsetFlag; //偏置电压结束标志位
  61. }CurrentOffset;
  62. extern CurrentOffset xdata mcCurOffset;
  63. extern void Get_Current_Offset(void);
  64. extern void FOC_Init(void);
  65. extern void Motor_Charge(void);
  66. extern void Motor_Open(void);
  67. extern void Motor_Align(void);
  68. #if (FiledWeakenCompEnable==1)
  69. typedef struct
  70. {
  71. uint16 FieldWeakenActualUS_Q15;
  72. uint16 FieldWeakenActualDcbus_Q15;
  73. int16 FieldWeakenIsTheta;
  74. int16 mcIqref;
  75. int16 mcIdref;
  76. }FieldWeakeningTypeDef;
  77. extern FieldWeakeningTypeDef xdata mcFieldWeaken;
  78. extern void GetFieldWeakenUsAndUdc_Q15(int16 Ud, int16 Uq , uint16 Dcbus);
  79. extern void GetFieldWeakenIdRefAndIqRef_Q15(int16 Is);
  80. extern void GetFieldWeakenIsTheta_Q15(void);
  81. extern int16 mcFieldWeakenPI(int16 feedbackvalue, int16 referencevalue);
  82. extern void FiledWeakenControl(int16 Ud, int16 Uq , uint16 Dcbusk,int16 Is);
  83. #endif
  84. typedef enum
  85. {
  86. BIG_ENDIAN = 0,
  87. LITTLE_ENDIAN = ENDIAN
  88. }eType_DMA_Endian;
  89. extern void SetEndian_DMA(eType_DMA_Endian eEndian);
  90. #endif