📄 ir_sensor.h
字号:
#ifndef IR_SENSOR_H
#define IR_SENSOR_H
void IR_front(uchar on_off); //前排光电对管开关
void IR_back(uchar on_off); //后排光电对管开关
void get_IR_front(); //获取前排光电对管信号
void get_IR_back(); //获取后排光电对管信号
volatile uchar IR_front_d[9],IR_back_d[9];
/***********************************************************************
函数功能:前排光电对管开关
入口参数:on_off 1:开,0:关
************************************************************************/
void IR_front_on_off(uchar on_off)
{
if(on_off==1)
{
SENSOR_TRG=1;
ADD_D0=0;
ADD_D1=1;
ADD_D2=0;
}
else if(on_off==0)
{
SENSOR_TRG=0;
ADD_D0=0;
ADD_D1=0;
ADD_D2=0;
}
}
/***********************************************************************
函数功能:后排光电对管开关
入口参数:on_off 1:开,0:关
************************************************************************/
void IR_back_on_off(uchar on_off)
{
if(on_off==1)
{
SENSOR_TRG=1;
ADD_D0=1;
ADD_D1=1;
ADD_D2=0;
}
else if(on_off==0)
{
SENSOR_TRG=0;
ADD_D0=0;
ADD_D1=0;
ADD_D2=0;
}
}
/***********************************************************************
函数功能:前排光电对管信号获取
出口参数:IR_front[0] 储存信号字节
IR_front[1]-IR_front[8] 储存IR_front[0]对应的位
************************************************************************/
void get_IR_front()
{
uchar i=0,temp=0x80;
DATABUS=0xFF;
IR_front_on_off(1);
delay_ms(5);
IR_front_d[0]=DATABUS;
for(i=1;i<=8;i++)
{
if(IR_front_d[0]&temp)IR_front_d[i]=1;
else IR_front_d[i]=0;
temp=temp>>1;
}
IR_front_on_off(0);
}
/***********************************************************************
函数功能:后排光电对管信号获取
出口参数:IR_back[0] 储存信号字节
IR_back[1]-IR_back[8] 储存IR_back[0]对应的位
************************************************************************/
void get_IR_back()
{
uchar i=0,temp=0x80;
DATABUS=0xFF;
IR_back_on_off(1);
delay_ms(5);
IR_back_d[0]=DATABUS;
for(i=1;i<=8;i++)
{
if(IR_back_d[0]&temp)IR_back_d[i]=1;
else IR_back_d[i]=0;
temp=temp>>1;
}
IR_back_on_off(0);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -