|
以下代码是IIC读取角度值的,但不明白为什么要乘以500除以4096呢?这芯片资料少。
void Read_Disp(void)
{
UINT16 a = 0,b = 0;
float d = 0;
UINT8 *p;
UINT8 val[10]={0,0,0};
unsigned long x=0;
p=val;
a=read_iic_data();
x=a;
x=x*500/4096;
if (x>=50)
{
x=x-50;
}
else
{
x=0;
}
x=x*180/400;
if (x>=90)
{
x=x-90;
a=0;
}
else
{
x=90-x;
a=1;
}
Lcd1602_pos(0x06);
if (a==0)
{
Lcd1602_wdat('-');
}
else
{
Lcd1602_wdat('+');
}
Lcd1602_pos(0x07);
b=x/10;
Lcd1602_wdat(b+0x30);
Lcd1602_pos(0x08);
b=x%10;
Lcd1602_wdat(b+0x30); |
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|