/*************************************************************************//** *****************************************************************************/ uint32_t appTimeGet(void) { uint16_t current_sys_time; uint32_t current_time; do { current_sys_time = sys_time; current_time = current_sys_time; current_time = current_time << 16; current_time = current_time | common_tc_read_count(); } while (current_sys_time != sys_time); return current_time; }
static inline uint32_t gettime(void) { uint16_t current_sys_time; uint32_t current_time; do { current_sys_time = sys_time; current_time = current_sys_time; current_time = current_time << 16; current_time = current_time | common_tc_read_count(); /* * This calculation is valid only if the timer has not rolled * over. * The sys_time variable may have changed in the timer overflow * ISR. */ } while (current_sys_time != sys_time); return current_time; }