⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readad.c

📁 这是DSP2407的一个例子
💻 C
字号:
#include"2407regs.h"

int ad,templ,tempf,tempr,distant,i,adcheck;

int checkad(char choice){//选择红外传感器,并进行软件滤波
	
	int psd;
	adcheck=0;
	switch(choice){
		case 'l': for(i=500;i>=0;i--){
				  psd=RESULT0>>6;
				  if(psd<=distant) adcheck++;
				  else adcheck--;
				  } break;
		case 'f': for(i=500;i>=0;i--){
				  psd=RESULT1>>6;
				  if(psd<=distant) adcheck++;
				  else adcheck--;
				  } break;
		case 'r': for(i=500;i>=0;i--){
				  psd=RESULT3>>6;
				  if(psd<=distant) adcheck++;
				  else adcheck--;
				  } break;
		default:break;
	}
	if(adcheck>0) {psd=distant-10;return(psd); }//  <distant
	else {psd=distant+10;return(psd);}//  >distant
}


int readad(){

	distant=550;//1.6v(15cm)
//	templ=RESULT0>>6;
//	tempf=RESULT1>>6;
//	tempr=RESULT2>>6;
	templ=checkad('l');//左边,RESULT0
	if(templ<=distant)//距离>=20cm,没有障碍
		{
			tempf=checkad('f');//中间,RESULT1
			if(tempf<=distant) 
			{
				tempr=checkad('r');//右边,RESULT2
				if(tempr<=distant) ad=0x000;//三个都没障碍
				else ad=0x001;//右边有障碍
			}
			else 
			{
				tempr=checkad('r');
				if(tempr<=distant) ad=0x010;//中间有障碍
				else ad=0x011;//中间,右边都有障碍
			}
		}
	else //距离<20cm,有障碍
		{
			tempf=checkad('f');
			if(tempf<=distant) 
			{
				tempr=checkad('r');
				if(tempr<=distant) ad=0x100;//左边有障碍
				else ad=0x101;//左边,右边有障碍
			}
			else 
			{
				tempr=checkad('r');
				if(tempr<=distant) ad=0x110;//左边,中间有障碍
				else ad=0x111;//左边,中间,右边都有障碍
			}
		}
	return ad;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -