初级会员

- 积分
- 176
- 金钱
- 176
- 注册时间
- 2016-9-20
- 在线时间
- 56 小时
|

楼主 |
发表于 2016-11-14 16:07:54
|
显示全部楼层
[mw_shl_code=cpp,true]#include "readport.h"
#include "lcd.h"
int main(void)
{
int SUM;
double angle,Angle;
float Dev;
u8 Sum[12],RSL[30],DEV[30]; //存放角度值字符串
void READPORT_Init();
int READPORT_Sum();
delay_init(); //延时函数初始化
uart_init(9600); //串口初始化为9600
LCD_Init();
POINT_COLOR=RED;
while(1)
{
SUM=READPORT_Sum();
if(EN1==0&&EN2==0)
{
Angle=0.3515625;
}
else if(EN1==0&&EN2==1)
{
Angle=0.087890625;
}
else if(EN1==1&&EN2==0)
{
Angle=0.02197265625;
}
else if(EN1==1&&EN2==1)
{
Angle=0.0054931640625;
}
angle=SUM*Angle;
sprintf((char*)RSL,"Accuracy:%10.13f",Angle);
Dev=DEVIATION(&angle,&Angle);
sprintf((char*)Sum,"Angle:%10.14f",angle);
sprintf((char*)DEV,"Deviation:%5.0f",Dev);
LCD_Clear(GRAY);
LCD_ShowString(15,20,300,24,24,Sum); //显示读取角度
if(BUSY==0)
{
if(EN1==0&&EN2==0)
LCD_ShowString(15,50,300,24,24,"EN1=0,EN2=0,10 bits,");
if(EN1==0&&EN2==1)
LCD_ShowString(15,50,300,24,24,"EN1=0,EN2=1,12 bits,");
if(EN1==1&&EN2==0)
LCD_ShowString(15,50,300,24,24,"EN1=1,EN2=0,14 bits,");
if(EN1==1&&EN2==1)
LCD_ShowString(15,50,300,24,24,"EN1=1,EN2=1,16 bits,");
LCD_ShowString(15,80,300,24,24,RSL); //显示精确度
LCD_ShowString(15,110,200,24,24,DEV); //显示误差
LCD_ShowString(15,140,200,24,24,"data can be used"); //数据有效;
}
else
LCD_ShowString(15,140,200,24,24,"data can't be used"); //数据不可用;
delay_ms(1000);
}
}[/mw_shl_code] |
|