mc_error.c 772 B

12345678910111213141516171819202122232425262728293031
  1. #include "foc/mc_error.h"
  2. #include "foc/core/PMSM_FOC_Core.h"
  3. #include "libs/logger.h"
  4. static err_record_t err[FOC_CRIT_Err_Max];
  5. void err_add_record(u8 err_code, s16 err_value) {
  6. if (err_code >= FOC_CRIT_Err_Max) {
  7. return;
  8. }
  9. err[err_code].err_value = err_value;
  10. err[err_code].err_time = get_tick_ms();
  11. }
  12. int err_get_record(u8 index, int size, err_record_t *err_out) {
  13. size = min(size, (FOC_CRIT_Err_Max - index));
  14. for (int i = index; i < index + size; i++) {
  15. err_out[i].err_value = err[i].err_value;
  16. err_out[i].err_time = err[i].err_time;
  17. }
  18. return size;
  19. }
  20. void err_code_log(void) {
  21. for (int i = 0; i < FOC_CRIT_Err_Max; i++) {
  22. if (err[i].err_time == 0) {
  23. continue;
  24. }
  25. sys_error("err:%d, time = %d\n", err[i].err_value, err[i].err_time);
  26. }
  27. }