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

📄 readback.c

📁 一个带CANBUS的倒车雷达源码!希望大家能用的上!
💻 C
字号:
#include "config.h"

void	ReadBack(unsigned char channel,unsigned char count)
{
  unsigned char i,j;
	unsigned  int   k;
  ClrWdt( );
  
//  Flags.Bit.LongRing=0;
	TMR0L=0X00;//开始记时387us
	INTCONbits.TMR0IF=0;
	k=20;
	while(--k);
	if(SEN) 
	{
		TimeTemp[channel][count]=TMR0L;    //??  TMR1L
		Alarm.Bit.NoSensor=1;
		k=15;//有待改进中,探头余震弯曲部分和近距离误报处理须改进,20
		while(--k);
		if(SEN) 
		{
			TimeTemp[channel][count]=TMR0L;//无探头	 TMR1L
			Alarm.Bit.NoSensor=1;
			k=10;//有待改进中,探头余震弯曲部分和近距离误报处理须改进,
		  while(--k);
	 	  if(SEN) 
		  {
			  TimeTemp[channel][count]=TMR0L;//无探头	
			  Alarm.Bit.NoSensor=1;
		  }
		}
		else Alarm.Bit.NoSensor=0;	
	}
	
	else Alarm.Bit.NoSensor=0;
	k=30;
	while(--k);
	if(Alarm.Bit.NoSensor==0)//低电平进入,有探头
	{
		k=10;
		while(--k);
	  while(TMR0L<0X30)//等待高电平,0x39:2.3ms  0x30:2.0ms
    {	
	     	 TimeTemp[channel][count]=TMR0L;
	     	 if(SEN) 
    	   { 	    
           TimeTemp[channel][count]=TMR0L;
           j=5;
           while(--j);//52us
           if(SEN) break;	
        	     	 //else	continue;
         }	
    }
         //TimeTemp[channel][count]=TMR0L;	 
         
	 	while(TMR0L<=0XFD) //1.25内等待低电平
		{
 	    TimeTemp[channel][count]=TMR0L;
 	    if(SEN==0) 
 	    {
	 	    TimeTemp[channel][count]=TMR0L; 
 	    	j=20;
 	  		while(--j);
 	  		if(SEN==0) break;       	
 	    }  					     
 	  }	
 	}  
 	  
 	Alarm.Bit.NoSensor=0;	
// 	TXREG=TimeTemp[channel][count]; 	 
    ClrWdt( );
    //TXREG=TimeTemp[channel][count];
	while(1)  //磨时间,耗完TMR1
	{
		if(INTCONbits.TMR0IF) 
		{
			INTCONbits.TMR0IF=0;        //TMR2溢出中断标志位
			break;
		}
	}	

	ClrWdt( );		
	k = 825;
	while(--k); //磨时间,凑够25MS 	
}

⌨️ 快捷键说明

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