Пример #1
0
/*************************************************************************//**
*****************************************************************************/
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;
}
Пример #2
0
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;
}