device_alive.c 705 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "device_alive.h"
  2. #include "systick.h"
  3. uint32_t last_time;//上一次数据采集的时间
  4. bool device_time_flag ;//只依据时间是否到达,可能存在时间抵达时已经在数据采集、后续采集结束再读时间到达时间的清除的情况出现
  5. //判断是否抵达预定的时间time则返回true
  6. bool time_arrive(uint32_t time )
  7. {
  8. if(last_time==0)
  9. {
  10. last_time=gettick();
  11. device_time_flag=1; //进入数据采集标志
  12. return true;
  13. }
  14. else
  15. {
  16. if((gettick()-last_time)>time && device_time_flag ==0)
  17. {
  18. last_time=gettick();
  19. device_time_flag=1; //进入数据采集标志
  20. return true;
  21. }
  22. else
  23. {
  24. return false;
  25. }
  26. }
  27. }
  28. void clear_time_flag()
  29. {
  30. if(device_time_flag==1)
  31. {
  32. device_time_flag=0;
  33. }
  34. }