📄 search.c
字号:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <csl_gpio.h>
#include <csl_gpiohal.h>
extern GPIO_Handle hGpio;
//#include <csl_dat.h>
//#include "6416.h"
extern unsigned char threshold=50;
#define QSRC 0x02000024
#define QDST 0x0200002C
#define QCNT 0x02000028
#define QIDX 0x02000030
#define QSOPT 0x02000020
#define CIPRL *(int *)0x01A0FFE4
void find(unsigned maddr,unsigned address,unsigned char threshold,int * x,int * y,int * n,int line_num);
int search(unsigned address,int * x,int * y)
{
int i,n;
unsigned line_address;
line_address = 0x80300000;
n=0;
//use QDMA sent data from sdram to L2
//*(int *)(QSRC) = line_address;
//*(int *)(QDST) = 0x00008000;
//*(int *)(QCNT) = 0x000000b4;
//*(int *)(QIDX) = 0x00000000;
//*(int *)(QSOPT) = 0x41302000;
for(i=0;i<576;i++)
{
if(n>400) break;
while(CIPRL&0x00010000==0);
CIPRL = 0x00010000;
if(i%2)
{
line_address = address + 720*((i-1)/2);
//*(int *)(QSRC) = line_address;
//*(int *)(QDST) = cap1;
// *(int *)(QCNT) = 0x00000168;
// *(int *)(QIDX) = 0x00000000;
//*(int *)(QSOPT) = 0x41302000;
find(address,line_address,threshold,x,y,&n,i);
}
else
{
line_address = address + 720*(i/2+288);
// *(int *)(QSRC) = line_address;
// *(int *)(QDST) = cap2;
// *(int *)(QCNT) = 0x00000168;
// *(int *)(QIDX) = 0x00000000;
// *(int *)(QSOPT) = 0x41302000;
find(address,line_address,threshold,x,y,&n,i);
}
}
if(n)
{
//if(error>0)
GPIO_pinWrite(hGpio,GPIO_PIN0,1);
return n;
}
else return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -