📄 vportcap.c
字号:
/* 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 + -