智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 830|回复: 0
打印 上一主题 下一主题

上报摄像头数据时单片机报错

[复制链接]

1

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
58
威望
43
贡献
9
兑换币
10
注册时间
2014-7-21
在线时间
3 小时
毕业学校
油麻地小学
跳转到指定楼层
1#
发表于 2014-7-29 21:37:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

用的是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, 立刻出错。

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-30 23:29 , Processed in 0.050658 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表