?? bmdriver.c
字號:
#include "c8051f020.h"
#include "BMDriver.h"
unsigned char ReadBM()
{
static unsigned char EveCnt=0;
unsigned char m;
m=P3&0x03;
switch(EveCnt)
{
case 0://保持狀態0(口線保持信息為00)
if(m!=0)
{
if(m==1)//讀入信息為01,表示正轉
{
EveCnt=1;
return 1;
}
if(m==2)//讀入信息為10,表示反轉
{
EveCnt=1;
return 2;
}
if(m==3)
{
EveCnt=2;
}
}
break;
case 1://等待保持狀態切換到1
if(m==0x03)
EveCnt=2;//進入保持狀態1
break;
case 2: //保持狀態1(口線保持信息為11)
if(m!=3)
{
if(m==1)
{
EveCnt=3;//讀入信息為01,表示反轉
return 2;
}
if(m==2)
{
EveCnt=3;//讀入信息為10,表示正轉
return 1;
}
/* if(m==0)
{
EveCnt=0;
}*/
}
break;
case 3://對讀入信息11進行濾波處理
if(m==0x00)
EveCnt=0;//濾波成功表示保持切換,進入保持狀態0
break;
default:break;
}
return(0);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -