智能车制作

标题: 上报摄像头数据时单片机报错 [打印本页]

作者: clk123clk    时间: 2014-7-29 21:37
标题: 上报摄像头数据时单片机报错

用的是TI公司的M4内核的MCU, 由于速度不够, 采集数据时, 先采集下来存到img二维数组里, 然后暂停中断开始上报数据, 再开中断。

但是每次发送到img[25][47]就会出错, 每次都在同一个地方。 SRAM大小应该也是够的。

下面是串口部分。

uint16_t i, j;

while(print){//数据采集结束print就置位
                        MAP_GPIOIntDisable(GPIO_PORTC_BASE, Pin_PCLK|Pin_HREF|Pin_VSYN);//暂停 interrupt
                        UARTCharPut(UART0_BASE, 0xff);//数据头
                        for(i=0; i<240; i+=2){
                                for(j=0; j<640; j+=4){
                                        if(img[j] == 0xff){
                                                img[j] = 0xfe;//防止误判为数据头
                                        }
                                        if((i%2==0)&&(j%4==0)){
                                                MAP_UARTCharPut(UART0_BASE, img[i/2][j/4]);//img大小是[120][160],隔2行隔4列存储
                                                SysCtlDelay(3);//怕是传太快导致的, 加个延时
                                        }
                                }
                                //UARTCharPut(UART0_BASE, 0xff);
                                SysCtlDelay(3);//打个断点, 看哪里出错了
                        }
                        print = 0;//标志位 打印结束 中断继续
                        Delay_us(1);
                        MAP_GPIOIntEnable(GPIO_PORTC_BASE, Pin_PCLK|Pin_HREF|Pin_VSYN);//开中断
                        break;
                }


现在错误定位在i=50 j=148的地方, 即img[25][47], 每次输出到这里就进入faultISR。

我试过在DEBUG的时候, 把i的值设置为51或者52甚至100, 立刻出错。

请问可能是什么原因导致的呢。





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2