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

📄 vportcap.c

📁 合众达的DM642示例工程
💻 C
📖 第 1 页 / 共 3 页
字号:
/* status bits. */
/*................................................................ */
interrupt void VPCapChaAIsr(void)
{
	Uint32 vpis = 0;
	Uint8 i,j;
	/* Get video port status register value */
	vpis = VP_RGETH(vpCaptureHandle, VPIS);
	if(vpis & _VP_VPIS_CCMPA_MASK) /* capture complete */
	{
		/* Clear frame complete bit in VCX_CTL to continue capture in non-continuous mode*/
		VP_FSETH(vpCaptureHandle, VCASTAT, FRMC,VP_VCASTAT_FRMC_CLEAR);
		/* Clear CCMPA to enable next frame complete interrupts*/
		VP_FSETH(vpCaptureHandle, VPIS, CCMPA,VP_VPIS_CCMPA_CLEAR);
		capChaAFrameCount++; /* increment captured frame count */
		capNewFrame = capNewFrame+1;
		if(capNewFrame%2 == 1)
		{
			   for(i=0;i<22;i++)
		{
					
			
				for(j=0;j<35;j++)	
				{
					*(int *)(0x80200000 + (260+i)*720 + (20+j) + 0x32a00) = 0x0;
					*(int *)(0x80200000 + (260+i)*720 + (20+j) ) = 0x0;
				}	
													
	     }
	      if(threshold<40)         
	     for(i=5;i<15;i++)
		{
					
			
				for(j=15;j<26;j++)	
				{
					*(int *)(0x80200000 + (260+i)*720 + (20+j) + 0x32a00) = 0x5a5a5a5a;
					*(int *)(0x80200000 + (260+i)*720 + (20+j) ) = 0x5a5a5a5a;
					
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x94949494;//*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 ) = 0x94949494;//*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
					
			        *(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0xf5f5f5f5;//*(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
					*(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 ) = 0xf5f5f5f5;//*(int *)(0x8029b0a0 + (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 *)(0x80200000 + (260+i)*720 + (20+j) + 0x32a00) = 0x9a9a9a9a;
					*(int *)(0x80200000 + (260+i)*720 + (20+j) ) = 0x9a9a9a9a;
					
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x10101010;//*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 ) = 0x10101010;//*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
					
			        *(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x4b4b4b4b;//*(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
					*(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 ) = 0x4b4b4b4b;//*(int *)(0x8029b0a0 + (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 *)(0x80200000 + (260+i)*720 + (20+j) + 0x32a00) = 0xdfdfdfdf;
					*(int *)(0x80200000 + (260+i)*720 + (20+j) ) = 0xdfdfdfdf;
					
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x94949494;//*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 ) = 0x94949494;//*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
					
			        *(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x0;//*(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
					*(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 ) = 0x0;//*(int *)(0x8029b0a0 + (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 *)(0x80200000 + (260+i)*720 + (20+j) + 0x32a00) = 0xdfdfdfdf;
					*(int *)(0x80200000 + (260+i)*720 + (20+j) ) = 0xdfdfdfdf;
					
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0;// (int *)(0x802675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 ) = 0;//(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
					
			        *(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0x94949494;// (int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
					*(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 ) = 0x94949494;// (int *)(0x8029b0a0 + (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 *)(0x80200000 + (260+i)*720 + (20+j) + 0x32a00) = 0x49494949;
					*(int *)(0x80200000 + (260+i)*720 + (20+j) ) = 0x49494949;
					
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0xe6e6e6e6;//(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color12[i-5][j-15];
					*(int *)(0x802675c0 + (260+i)*360 + (20+j)/2 ) = 0xe6e6e6e6;//(int *)(0x801675c0 + (260+i)*360 + (20+j)/2 )&&color12[i-5][j-15];
					
			        *(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 + 0x19500) = 0xb6b6b6b6;//(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 + 0x19500)&&color15[i-5][j-15];
					*(int *)(0x8029b0a0 + (260+i)*360 + (20+j)/2 ) = 0xb6b6b6b6;//(int *)(0x8019b0a0 + (260+i)*360 + (20+j)/2 )&&color15[i-5][j-15];
					
				}				
	     }
				
		}	
		if(capNewFrame%2 == 0)
		{
		for(i=0;i<22;i++)
		{
					
			
				for(j=0;j<35;j++)	
				{
					*(int *)(0x80100000 + (260+i)*720 + (20+j) + 0x32a00) = 0x0;
					*(int *)(0x80100000 + (260+i)*720 + (20+j) ) = 0x0;
		
				}
			}
			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;
					
				}				
	     }
		}
		}			
	
	if(vpis & _VP_VPIS_COVRA_MASK) /* overrun error */
	{
		capChaAOverrun++;
		VP_FSETH(vpCaptureHandle, VPIS, COVRA,VP_VPIS_COVRA_CLEAR);
	}
	if(vpis & _VP_VPIS_SERRA_MASK) /* synchronization error */
	{
		capChaASyncError++;
		VP_FSETH(vpCaptureHandle, VPIS, SERRA,VP_VPIS_SERRA_CLEAR);
	}
	if(vpis & _VP_VPIS_SFDA_MASK) /* short field detect */
	{
		capChaAShortFieldDetect++;
		VP_FSETH(vpCaptureHandle, VPIS, SFDA, VP_VPIS_SFDA_CLEAR);
	}
	if(vpis & _VP_VPIS_LFDA_MASK) /* long field detect */
	{
		capChaALongFieldDetect++;
		VP_FSETH(vpCaptureHandle, VPIS, LFDA, VP_VPIS_LFDA_CLEAR);
	}
}
/*******************************************************************/
interrupt void Adthr(void)
{
    if(threshold <= 250)threshold += 5;
    // threshold=threshold+5;
     ICR = 0x00000010;
    // CSR = CSR | 0x00000001;

⌨️ 快捷键说明

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