0

我在 Xilinx SDK 中为 microblaze 编写 ac 代码。变量定义为:

int xcoi;
int ycoi;
u16 mat[1280][720];

该代码读取存储在 DDR2 内存中的图像数据并将其保存到变量中。

if ((lBtnChanges & bitBtnD) && (lBtnStateNew & bitBtnD))
    {
        for(xcoi = 0; xcoi<1280; xcoi++)
        {
            for(ycoi = 0; ycoi<720; ycoi++)
            {
                mat[xcoi][ycoi] = Xil_In16(pFrame + ycoi*(lLineStride*2) + xcoi*2);
                xil_printf("\n\r xcoi = %d    ycoi = %d \n\r",xcoi,ycoi);
            }

        }
    }

为了检查代码是否正常工作,我在控制台中打印了 x 和 y 坐标。我得到错误的输出部分是:

xcoi = 11 ycoi = 253

xcoi = 11 ycoi = 254

xcoi = 11 ycoi = 255

xcoi = 11 ycoi = 256

xcoi = 11 ycoi = 257

xcoi = 11 ycoi = 258

xcoi = 11 ycoi = 259

xcoi = 11 ycoi = 260

xcoi = -547553269 ycoi = 261

xcoi = -547553269 ycoi = 262

xcoi = -547553269 ycoi = 263

xcoi = -547553269 ycoi = 264

xcoi = -547553269 ycoi = 265

xcoi = -547553269 ycoi = 266

xcoi = -547553269 ycoi = 267

为什么 xcoi = 11 ycoi = 260 后 xcoi 会发生变化?相反,它应该是下一行的 xcoi = 11 ycoi = 261。

4

0 回答 0