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

📄 searchstart.c

📁 第一届华中科技大学智能车led源码
💻 C
字号:
//*************************************************************************
//*																								                        *
//*			 ************************搜索起跑线*************************		  *
//*																								                        *
//*************************************************************************
#include "includes.h"

#define SEARCH_COLUMN 5

unsigned char uca_Domain[10];
unsigned char uc_CurDomain=0;
unsigned long ul_LastTime=0;
unsigned char uc_StartCount=0;

void vSearchStart(void)
{
  unsigned char ucRow;
  unsigned char *pucTemp;
  
  if(ul_LastTime!=0&&(ul_SystemTime-ul_LastTime)<200)
    return;
  
  for(ucRow=ROW_MIN+1;ucRow<ROW_MAX-1;ucRow++)
  {
    pucTemp=puca_BufferProcess+ucRow*IMAGE_COLUMN+SEARCH_COLUMN;
    if(*pucTemp==BLACK_POINT)
    {
      if(*(pucTemp+IMAGE_COLUMN)==WHITE_POINT
          &&*(pucTemp-IMAGE_COLUMN)==WHITE_POINT)
      {
        *pucTemp=WHITE_POINT;
        ucRow++;
      }
    }
    else
    {
      if(*(pucTemp+IMAGE_COLUMN)==BLACK_POINT
          &&*(pucTemp-IMAGE_COLUMN)==BLACK_POINT)
      {
        *pucTemp=BLACK_POINT;
        ucRow++;
      }
    }
  }
  
  uc_CurDomain=0;
  pucTemp=puca_BufferProcess+(ROW_MIN+21)*IMAGE_COLUMN+SEARCH_COLUMN;
  
  if(*pucTemp==BLACK_POINT)
  {
    uca_Domain[uc_CurDomain++]=ROW_MIN+21;
  }
  
  for(ucRow=ROW_MIN+15;ucRow<ROW_MAX-15;ucRow++)
  {
    pucTemp=puca_BufferProcess+ucRow*IMAGE_COLUMN+SEARCH_COLUMN;
    if(uc_CurDomain%2==0)
    {
      if(*pucTemp==BLACK_POINT
        &&*(pucTemp-IMAGE_COLUMN)==WHITE_POINT)
        uca_Domain[uc_CurDomain++]=ucRow;
    }
    else
    {
      if(*pucTemp==BLACK_POINT
        &&*(pucTemp+IMAGE_COLUMN)==WHITE_POINT)
        uca_Domain[uc_CurDomain++]=ucRow;
    }
  }
   
  if(uc_CurDomain%2==1)
  {
    uca_Domain[uc_CurDomain++]=ROW_MAX-22;
  }
  
  if(uc_CurDomain>=4)
  {
    if(((uca_Domain[1]-uca_Domain[0])>5)
      &&((uca_Domain[3]-uca_Domain[2])>5)
      &&((uca_Domain[2]-uca_Domain[1])>4)
      &&((uca_Domain[2]-uca_Domain[1])<8))
    {
      uc_StartCount++;
      ul_LastTime=ul_SystemTime;
    }
/*    else
    {
      if(uc_CurDomain==6)
      {
        if(((uca_Domain[3]-uca_Domain[2])>5)
          &&((uca_Domain[5]-uca_Domain[4])>5)
          &&((uca_Domain[4]-uca_Domain[3])>3)
          &&((uca_Domain[4]-uca_Domain[3])<10))
        {
          uc_StartCount++;
        }
      }
    } */
  }
  
  if(uc_StartCount==3)
    vCarStop();
  
//  PORTB=~uc_StartCount;
}

⌨️ 快捷键说明

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