下面这段代码做了什么

use*_*666 10 c

short rtimer_arch_now(void)
{
  short t1, t2;
  do {
    t1 = TA1R;
    t2 = TA1R;
  } while(t1 != t2);
  return t1;
}
Run Code Online (Sandbox Code Playgroud)

TA1R是Timer_A寄存器.我仍然不明白为什么有一个循环.如果他们想要返回时间,他们只需返回TA1R.循环是什么?

per*_*eal 13

它会在您询问当前时间时尝试避免这种情况,但它会在时间滴答之前返回值.因此,如果读数稳定,它只返回当前时间.

  • 你打赌我打赌 (8认同)