#include "device_alive.h" #include "systick.h" uint32_t last_time;//上一次数据采集的时间 bool device_time_flag ;//只依据时间是否到达,可能存在时间抵达时已经在数据采集、后续采集结束再读时间到达时间的清除的情况出现 //判断是否抵达预定的时间time则返回true bool time_arrive(uint32_t time ) { if(last_time==0) { last_time=gettick(); device_time_flag=1; //进入数据采集标志 return true; } else { if((gettick()-last_time)>time && device_time_flag ==0) { last_time=gettick(); device_time_flag=1; //进入数据采集标志 return true; } else { return false; } } } void clear_time_flag() { if(device_time_flag==1) { device_time_flag=0; } }