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

📄 dm642main.c

📁 基于642的sd卡读写程序
💻 C
📖 第 1 页 / 共 2 页
字号:
					   (sa7121hPAL[i].regvule));	
		}		
	}*/
	
/*----------------------------------------------------------*/
	/*初始化Video Port1*/
	/*将Vedio Port2设为采集输入*/
	ED=0;
	portNumber = 0;
    vpHchannel1 = bt656_8bit_ncfc(portNumber);
	bt656_capture_start(vpHchannel1);
	/*等待第一帧数据采集完成*/
	while(capNewFrame == 0){}
	/*将数据存入显示缓冲区,并清采集完成的标志*/
	capNewFrame =0;
	
	bt656_display_start(vpHchannel0);
	/*建立显示的实时循环*/
	ED=1;
	ED1=1;

	//VP_close(vpHchannel0);
    //vpHchannel0 = bt656_8bit_ncfd(0);
    //bt656_display_start(vpHchannel0);
	error=0;
	for(;;)
	{
   	    while(error/*(cjbz<400)&(cjbz>240)*/){}
	    if(!ED)
	    {ED=1;
	    //vpHchannel0 = bt656_8bit_ncfd(0);
	    //EVMDM642_waitusec(100);
	    VP_close(vpHchannel0);
	    //VP_close(vpHchannel1);
		vpHchannel1 = bt656_8bit_ncfc(0);
	    bt656_capture_start(vpHchannel1);
	    vpHchannel0 = bt656_8bit_ncfd(2);
	    while(capNewFrame == 0){}
	    bt656_display_start(vpHchannel0);	    
	    }
/*******************************************************************************************/
        /*if(capNewFrame%2 == 1)
		{
			   for(i=0;i<20;i++)
		{
					
			
				for(j=0;j<40;j++)	
				{
					*(int *)(dis1Ybuffer + (260+i)*720 + (20+j) + 0x32a00) = 0xffffffff;
					*(int *)(dis1Ybuffer + (260+i)*720 + (20+j) ) = 0xffffffff;
					
				}
			}
			
		}	
		else if(capNewFrame%2 == 0)
		{
		for(i=0;i<20;i++)
		{
					
			
				for(j=0;j<40;j++)	
				{
					*(int *)(dis2Ybuffer + (260+i)*720 + (20+j) + 0x32a00) = 0xffffffff;
					*(int *)(dis2Ybuffer + (260+i)*720 + (20+j) ) = 0xffffffff;
		
				}
			}
			
		}	*/
/*************************************************************************************************/
		/*当采集区的数据已经采集好,而显示缓冲区的数据已空*/
EVMDM642_waitusec(45000);
		if(capNewFrame%2 == 0)//&&(disNewFrame == 1))
		
		{	/*将数据装入显示缓冲区,并清采集完成的标志*/			
			//capNewFrame =0;
			disNewFrame =0;
			for(i=0;i<numLines;i++)
			{
				/*传送Y缓冲区*/
				DAT_copy((void *)(dis1Ybuffer + i * numPixels), 
			             (void *)(findY + i * numPixels),
			             numPixels);
			    /*传送Cb缓冲区*/
			    DAT_copy((void *)(dis1Cbbuffer + i * (numPixels >> 1)), 
			             (void *)(findCb + i * (numPixels >> 1)),
			             numPixels>>1);
				/*传送Cr缓冲区*/
			    DAT_copy((void *)(dis1Crbuffer + i * (numPixels >> 1)), 
			             (void *)(findCr + i * (numPixels >> 1)),
			             numPixels>>1);
			 }
			 
			 if(!ED)
			 bt656_display_start(vpHchannel0);
			 error = search(findY,x,y);
			 if(error/*(cjbz>240)&(cjbz<400)*/)
			 { 
			   ED=1;
			   //vpHchannel1 = bt656_8bit_ncfc(2);
			   //EVMDM642_waitusec(100);
			   VP_close(vpHchannel1);
			   VP_close(vpHchannel0);
			   //VP_close(vpHchannel0);
			   capNewFrame =0;
			   disNewFrame =0;
			   
			   
			   
			   
			   
			   
			   if(error>0)
	{
	if((c>=0)&&(c<=99))
	 c=c+1;
	 else
	 c=0;
	 n = error;
	//error = 0;
	
	for(m=0;m<n; m++)
	{
		for(i=0;i<10;i++)
		{
			line_x =  x[m]+i;
			line_t = 120+i;			
			if(!(line_x%2))
			{
				line_x = line_x/2;
				line_t = line_t/2;
				for(j=0;j<10;j++)	
				{
					*(int *)(findY + (line_x)*720 + (y[m]+j) + 0x32a00) = 0xffffffff;
					*(int *)(findCb + line_x*360 + (y[m]+j)/2 + 0x19500) = 0x55555555;
					//*(int *)(findY + 120*720 + (y[m]+j) + 0x19500) = 0xffffffff;
					*(int *)(findCr + line_x*360 + (y[m]+j)/2 + 0x19500) = 0x55555555;
				}
			}
			else
			{
				line_x = line_x/2;
				line_t = line_t/2;
				for(j=0;j<10;j++)	
				{
					*(int *)(findY + (line_x)*720 + (y[m]+j) ) = 0xffffffff;
					*(int *)(findCb + line_x*360 + (y[m]+j)/2 ) = 0x55555555;
					//*(int *)(findY + line_x*360 + (y[m]+j) ) = 0xffffffff;
					*(int *)(findCr + line_x*360 + (y[m]+j)/2 ) = 0x55555555;
				}			
			}
		}	
	}
	//GPVAL = GPVAL | 0x8000;
	/*break;*/
	}

	
	
	
	
	
			 /* for(i=0;i<numLines;i++)
			{
				/*传送Y缓冲区*/
			/*	DAT_copy((void *)(findY + i * numPixels), 
			             (void *)(capYbuffer + i * numPixels),
			             numPixels);
			    /*传送Cb缓冲区*/
			   /* DAT_copy((void *)(findCb + i * (numPixels >> 1)), 
			             (void *)(capCbbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
				/*传送Cr缓冲区*/
			   /* DAT_copy((void *)(findCr + i * (numPixels >> 1)), 
			             (void *)(capCrbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
			 }*/
			 if(threshold<40)			
			for(i=5;i<15;i++)
		{
					
			
				for(j=15;j<26;j++)	
				{
					*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0x5a5a5a5a;
					*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0x5a5a5a5a;
					
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x94949494;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0x94949494;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
					
			        *(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0xf5f5f5f5;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
					*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0xf5f5f5f5;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 )&&color15[i-5][j-15];
					
				}				
	     }
	     if((threshold>=40)&&(threshold<60))			
			for(i=5;i<15;i++)
		{
					
			
				for(j=15;j<26;j++)	
				{
					*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0x9a9a9a9a;
					*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0x9a9a9a9a;
					
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x10101010;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0x10101010;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
					
			        *(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x4b4b4b4b;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
					*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0x4b4b4b4b;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 )&&color15[i-5][j-15];
					
				}				
	     }
	     if((threshold>=60)&&(threshold<80))
	     for(i=5;i<15;i++)
		{
					
			
				for(j=15;j<26;j++)	
				{
					*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0xdfdfdfdf;
					*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0xdfdfdfdf;
					
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x94949494;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0x94949494;//*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
					
			        *(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x0;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
					*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0x0;//*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 )&&color15[i-5][j-15];
					
				}				
	     }
	     if((threshold>=80)&&(threshold<100))
	     for(i=5;i<15;i++)
		{
					
			
				for(j=15;j<26;j++)	
				{
					*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0xdfdfdfdf;
					*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0xdfdfdfdf;
					
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0;//(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0;//(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
					
			        *(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x94949494;//(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
					*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0x94949494;//(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 )&&color15[i-5][j-15];
					
				}				
	     }
	     if(threshold>=100)
	     for(i=5;i<15;i++)
		{
					
			
				for(j=15;j<26;j++)	
				{
					*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0x49494949;
					*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0x49494949;
					
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0xe6e6e6e6;
					*(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 ) = 0xe6e6e6e6;
					
			        *(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0xb6b6b6b6;
					*(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 ) = 0xb6b6b6b6;
					
				}				
	     }
		
			 for(i=0;i<288;i++)
			{
				/*传送Y缓冲区*/
				DAT_copy((void *)(findY + i * numPixels), 
			             (void *)(findY + 288*720+i * numPixels),
			             numPixels);
			    /*传送Cb缓冲区*/
			    DAT_copy((void *)(findCb + i * (numPixels >> 1)), 
			             (void *)(findCb + 288*360+i * (numPixels >> 1)),
			             numPixels>>1);
				/*传送Cr缓冲区*/
			    DAT_copy((void *)(findCr + i * (numPixels >> 1)), 
			             (void *)(findCr + 288*360+i * (numPixels >> 1)),
			             numPixels>>1);
			 }
			   for(i=0;i<numLines;i++)
			{
				/*传送Y缓冲区*/
				DAT_copy((void *)(findY + i * numPixels), 
			             (void *)(dis1Ybuffer + i * numPixels),
			             numPixels);
			    /*传送Cb缓冲区*/
			    DAT_copy((void *)(findCb + i * (numPixels >> 1)), 
			             (void *)(dis1Cbbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
				/*传送Cr缓冲区*/
			    DAT_copy((void *)(findCr + i * (numPixels >> 1)), 
			             (void *)(dis1Crbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
			 }
			 for(i=0;i<numLines;i++)
			{
				/*传送Y缓冲区*/
				DAT_copy((void *)(findY + i * numPixels), 
			             (void *)(dis2Ybuffer + i * numPixels),
			             numPixels);
			    /*传送Cb缓冲区*/
			    DAT_copy((void *)(findCb + i * (numPixels >> 1)), 
			             (void *)(dis2Cbbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
				/*传送Cr缓冲区*/
			    DAT_copy((void *)(findCr + i * (numPixels >> 1)), 
			             (void *)(dis2Crbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
			 }
/************************************************************************************************************/			   
		
			   	   for(i=0;i<numLines;i++)
			   	     {
			   	       DAT_copy((void *)(findY + i * numPixels), 
			                    (void *)(dis3Ybuffer + i*2 * numPixels),
			                     numPixels);
			          }
			       for(i=0;i<numLines;i++)
			   	     {
			   	       DAT_copy((void *)(findY + i * numPixels), 
			                    (void *)(dis3Ybuffer +( i*2+1) * numPixels),
			                     numPixels);
			          }
/************************************************************************************************************/			   
			   vpHchannel0 = bt656_8bit_ncfd(2);
			   bt656_display_start(vpHchannel0);
			   ED=0;
			   

	          ok=CreateFile(name[c],(Uint32)405798);				//建立长度为54的空文件
	          if(ok==SD_FAIL)printf("error occur.\n");					//文件已存在,退出
                
              WriteFile(name[3],(Uint32)0,(Uint32)405798,(Uint8 *)&findY/*(findY+(i*16384))*/);	//将buffer写入文件
			   //最后记着把error清零。
			  }
		}
	

		}
	
	
	for(;;)
	{}
/*----------------------------------------------------------*/
	/*采集与回放*/	
}     

⌨️ 快捷键说明

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