📄 obstacle.c
字号:
//====================================================================================
//文 件 名: Obstacle.c
//功能描述: 避障程序
//维护记录: 2006年6月27 by hongyan.Feng
//====================================================================================
#include "SPCE061A.h"
extern void Tx_Init(void);
extern void Rx_Init(void);
extern void INT_Init(void);
extern void RN_Tx(unsigned int ms,unsigned int lel);
extern unsigned int Rcounter;
//====================================================================================
//语法格式: void Obstacle(void)
//功能描述: 避障函数,如果遇到障碍物,返回1,否则返回0
//入口参数: 无
//出口参数: 返回1,检测到障碍物;返回0,没有检测到障碍物
//维护记录: 2006年6月27 by hongyan.Feng
//====================================================================================
unsigned int Obstacle(void)
{
unsigned int RFlag=0;
Tx_Init(); //避障端口初始化
Rx_Init();
INT_Init(); //设置TimerA,使IOB8输出38KHz的PWM波形,供红外发射调制作;开1KHz中断
//--------------下面的数据序列可以任意发送,发送什么样的数据可自行决定-------------------//
RN_Tx(16,0); //发送起始位
RN_Tx(3,1); //发送bit0
RN_Tx(1,0);
RN_Tx(3,1); //发送bit1
RN_Tx(1,0);
RN_Tx(1,1); //发送bit2
RN_Tx(1,0);
RN_Tx(1,1); //发送bit3
RN_Tx(1,0);
RN_Tx(3,1); //发送bit4
RN_Tx(1,0);
RN_Tx(1,1); //发送bit5
RN_Tx(1,0);
RN_Tx(1,1); //发送bit6
RN_Tx(1,0);
RN_Tx(1,1); //发送bit7
RN_Tx(1,0);
//---------------------------------------------------------------------------------------//
if(Rcounter>16) //判断是否接收到发送数据,Rcounter在RN_Rx函数中改变
{
RFlag = 1; //如果接收到数据,接收到标志置1
}
Rcounter = 0; //计数器清零
*P_Watchdog_Clear = 0x0001;
return RFlag; //返回接收标志
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -