我现在再调DM6437+FVID部分,简单的说就是从摄像头抓取一个红色的点然后跟踪,可是在用FVID部分出了一点问题,代码如下
/* grab first buffer from input queue */
if (status == 0) {
FVID_dequeue(hGioVpfeCcdc, &frameBuffPtr);
}
/* loop forever performing video capture and display */
while (!done && status == 0) {
/* grab a fresh video input frame */
FVID_exchange(hGioVpfeCcdc, &frameBuffPtr);
if(counti==100)
{
counti=0;
i=360,j=240;
dataCb=*((unsigned char *)(frameBuffPtr->frame.iFrm.y1+(i+j*1440)));
dataCr=*((unsigned char *)(frameBuffPtr->frame.iFrm.y1+(i+j*1440+2)));
printf("Cb=%d,Cr=%d\n",dataCb,dataCr);
}
counti++;
FVID_exchange(hGioVpbeVid0, &frameBuffPtr);
//EVMDM6437_GPIO_setOutput(GPIO00, 0);
}
代码的作用是采集没一百帧以后读取一下某个点的颜色,并打印出来,可是问题再与每次DEBUG后这些数值永远不变,除非重新调试运行才行,开始怀疑指针指错地方了,但是如果我用之际用上面的语句直接赋值(比如红色),屏幕上是能出现红色的线条的,为什么读取就不行呢?求指导啊!感激不尽!
|