新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2019-12-30
- 在线时间
- 3 小时
|
2金钱
目前的情况是,霍尔元件工作正常。可以出现距离值,但是用距离值除以时间算出的速度值错误,甚至一直为0.0,请问这是什么原因?
霍尔元件部分程序如下:
void Hall_Data(void)
{
static uint32_t time=0;
int t=0;
if(HALL_Scan())
{
if(id_entity.HALL_Date==0)
{
time=runtime;
}
t=runtime-time;
id_entity.HALL_Date++;
if(bitledflag==0)
{
bitledflag=1;
LCD_Clear(WHITE);
}
if((1.2*1000/t)>12)
{
BEEP(1);
LED1(1);
POINT_COLOR=RED;
}
else
POINT_COLOR=BLACK;
memset(LCD_BUF,0,LCD_MAX_LEN);
sprintf((char*)LCD_BUF,"Distance:%0.1fm",(float)(id_entity.HALL_Date*1.2));
LCD_ShowString(30,130,200,16,16,LCD_BUF);
memset(LCD_BUF,0,LCD_MAX_LEN);
if(t==0)
sprintf((char*)LCD_BUF,"speed:%0.1fm/s",0.0);
else
sprintf((char*)LCD_BUF,"speed:%0.1fm/s",(float)(1.2*1000/(float)t));
LCD_ShowString(30,150,200,16,16,LCD_BUF);
printf("Hall_Count\t=\t%d\r\n",id_entity.HALL_Date);
}
}
|
|