该函数使用相反的腿(y)和相邻的腿(x)从结石返回所得斜边的角度
我不明白这段代码,任何人都可以帮助我吗? (<<>>符号)上下文中的函数
int atan2_cordic(Uint16 y, Uint16 x)
{
Uint16 angle;
int t;
Uint8 b;
// Singular cases
if (y==0) return 0; if (x==0) return 90; // 0º and 90º
// Rotate until angle is below atan(1/2). Angle in 1/2º units
angle=0;
t=y-x;
if(t>=0)
{
angle=90;
x+=y;
y=t;
}
t=(y<<1)-x;
if(t>=0)
{
angle+=53;
x<<=1; x+=y;
y=t;
}
y*=106;
y/=x;
y++; // (x/y)*106 + 1
angle+=y; // Add previous rotation
b=angle&0x01;
angle>>=1;
if (b) angle++; // divide by 2 with rounding
return angle;
}