|
以下代码是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周年了!感谢大家的支持与爱护!!
阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)
|