sys_ctrl.c 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #include "sys_ctrl.h"
  2. //#include "api.h"
  3. #include "CodePara.h"
  4. #define FALSE (0U)
  5. #define TRUE (1U)
  6. SysCtrl_PwmHandle sysctrl_stPwmState;
  7. void sysctrl_voPwmInit(void)
  8. {
  9. // /* Set 50% duty */
  10. // UWORD prd = iPwm_GetCountMax(0);
  11. // iPwm_SetCompareValue(0, 0, prd >> 1);
  12. // iPwm_SetCompareValue(0, 1, prd >> 1);
  13. // iPwm_SetCompareValue(0, 2, prd >> 1);
  14. // iPwm_SetCompareValueDelay(0, 0, prd >> 1);
  15. // iPwm_SetCompareValueDelay(0, 1, prd >> 1);
  16. // iPwm_SetCompareValueDelay(0, 2, prd >> 1);
  17. //
  18. // /* PWM off */
  19. // sysctrl_voPwmOff();
  20. //
  21. // /* Charge init */
  22. // sysctrl_stPwmState.uwChargeCnt = 0;
  23. // sysctrl_stPwmState.blChargeOvrFlg = FALSE;
  24. }
  25. void sysctrl_voPwmOn(void)
  26. {
  27. // if (sysctrl_stPwmState.blPwmOnflg == FALSE)
  28. // {
  29. // iPwm_SetCompareMode(0, API_PWM_CH(0), ApiPwm_HigherSet);
  30. // iPwm_SetCompareMode(0, API_PWM_CH(1), ApiPwm_HigherSet);
  31. // iPwm_SetCompareMode(0, API_PWM_CH(2), ApiPwm_HigherSet);
  32. // iPwm_SetCompareMode(0, API_PWM_CH(3), ApiPwm_HigherSet);
  33. //
  34. // iPwm_EnableChannelOutput(0, API_PWM_CH(0));
  35. // iPwm_EnableChannelOutput(0, API_PWM_CH(1));
  36. // iPwm_EnableChannelOutput(0, API_PWM_CH(2));
  37. // iPwm_EnableChannelOutput(0, API_PWM_CH(3));
  38. //
  39. // iPwm_EnableChannelOutput(0, API_PWM_CHN(0));
  40. // iPwm_EnableChannelOutput(0, API_PWM_CHN(1));
  41. // iPwm_EnableChannelOutput(0, API_PWM_CHN(2));
  42. // iPwm_EnableChannelOutput(0, API_PWM_CHN(3));
  43. //
  44. // sysctrl_stPwmState.blPwmOnflg = TRUE;
  45. // }
  46. }
  47. void sysctrl_voPwmOff(void)
  48. {
  49. // if (sysctrl_stPwmState.blPwmOnflg == TRUE)
  50. // {
  51. // iPwm_SetCompareMode(0, API_PWM_CH(0), ApiPwm_ForceClear);
  52. // iPwm_SetCompareMode(0, API_PWM_CH(1), ApiPwm_ForceClear);
  53. // iPwm_SetCompareMode(0, API_PWM_CH(2), ApiPwm_ForceClear);
  54. // iPwm_SetCompareMode(0, API_PWM_CH(3), ApiPwm_ForceClear);
  55. //
  56. // iPwm_DisableChannelOutput(0, API_PWM_CHN(0));
  57. // iPwm_DisableChannelOutput(0, API_PWM_CHN(1));
  58. // iPwm_DisableChannelOutput(0, API_PWM_CHN(2));
  59. // iPwm_DisableChannelOutput(0, API_PWM_CHN(3));
  60. //
  61. // sysctrl_stPwmState.blPwmOnflg = FALSE;
  62. // }
  63. }
  64. void sysctrl_voCharge(void)
  65. {
  66. /* Set 50% duty */
  67. // UWORD prd = iPwm_GetCountMax(0);
  68. // iPwm_SetCompareValue(0, 0, prd >> 1);
  69. // iPwm_SetCompareValue(0, 1, prd >> 1);
  70. // iPwm_SetCompareValue(0, 2, prd >> 1);
  71. // iPwm_SetCompareValueDelay(0, 0, prd >> 1);
  72. // iPwm_SetCompareValueDelay(0, 1, prd >> 1);
  73. // iPwm_SetCompareValueDelay(0, 2, prd >> 1);
  74. sysctrl_voPwmOn();
  75. sysctrl_stPwmState.uwChargeCnt ++;
  76. if (sysctrl_stPwmState.uwChargeCnt > cp_stControlPara.swIPMHvicChrgMs)
  77. {
  78. sysctrl_stPwmState.uwChargeCnt = 0;
  79. sysctrl_stPwmState.blChargeOvrFlg = TRUE;
  80. }
  81. }
  82. void sysctrl_voThrPhsShrt(void)
  83. {
  84. /* Set 0% duty */
  85. // iPwm_SetCompareValue(0, 0, 0);
  86. // iPwm_SetCompareValue(0, 1, 0);
  87. // iPwm_SetCompareValue(0, 2, 0);
  88. // iPwm_SetCompareValueDelay(0, 2, 0);
  89. // iPwm_SetCompareValueDelay(0, 2, 0);
  90. // iPwm_SetCompareValueDelay(0, 2, 0);
  91. // iPwm_SetCompareValueImmediate(0, 2, 0);
  92. // iPwm_SetCompareValueImmediate(0, 2, 0);
  93. // iPwm_SetCompareValueImmediate(0, 2, 0);
  94. sysctrl_voPwmOn();
  95. }