hal_error.c 858 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "main.h"
  2. static uint32_t err_b = 0;
  3. /********************** Íⲿº¯ÊýÉùÃ÷Çø *************************/
  4. uint32_t ERR_Get(void)
  5. {
  6. return err_b;
  7. }
  8. void ERR_process(void)
  9. {
  10. uint32_t ret = IMU_GetError();
  11. if(ret!=err_b){ err_b = ret;
  12. LED_AllOff();
  13. }
  14. static uint32_t tim=0;
  15. if(TIME_GetTicks()-tim>=1000){ tim = TIME_GetTicks();
  16. if(err_b&ERR_IMU_MASK_9DOT){
  17. #if DEBUG_ERROR
  18. DEBUG_LOG("ERROR(%08X):ERR_IMU_MASK_9DOT\n",err_b);
  19. #endif
  20. nrf_gpio_pin_toggle(LED_R);
  21. }
  22. if(err_b&ERR_IMU_MASK_PRESS){
  23. #if DEBUG_ERROR
  24. DEBUG_LOG("ERROR(%08X):ERR_IMU_MASK_PRESS\n",err_b);
  25. #endif
  26. nrf_gpio_pin_toggle(LED_G);
  27. }
  28. if(err_b&ERR_IMU_MASK_SLAVE){
  29. #if DEBUG_ERROR
  30. DEBUG_LOG("ERROR(%08X):ERR_IMU_MASK_SLAVE\n",err_b);
  31. #endif
  32. nrf_gpio_pin_toggle(LED_B);
  33. }
  34. }
  35. }
  36. void ERR_Init(void)
  37. {
  38. Process_Regist(ERR_process);
  39. }