注册 登录
查看: 430|回复: 7

[K60] 请教山外哥,中断嵌套,似乎行,似乎不行

[复制链接]
发表于 2014-4-13 13:08:21 | 显示全部楼层 |阅读模式
K60+OV7620+MMA8451+L3G4200;
问题 :图像采集出现后半场有20几行无法采集到
摄像头配置320*240;采集320*80;开场中断、行中断、DMA中断;PIT0的5ms定时器中断;IIC的通讯在5ms定时器里面;
配置抢占优先级
    NVIC_SetPriorityGrouping(4);            //设置优先级分组,4bit 抢占优先级,没有亚优先级

    NVIC_SetPriority(OV_VSYNC_IRQn,0);         //配置优先级
    NVIC_SetPriority(OV_HREF_IRQn,1);         //配置优先级
    NVIC_SetPriority(CAMERA_DMA_IRQn,2);          //配置优先级
    NVIC_SetPriority(PIT0_IRQn,3);          //配置优先级

采集到的图像
摄像头倒装了;采集到的图像后半场20几行不能采集到(第一场图像能采完,之后的每场都不能采集到后面的20几行;程序中场中断比PIT定时器中断先开,因此第一场能采完)




回复

使用道具 举报

 楼主| 发表于 2014-4-13 13:10:08 | 显示全部楼层
本帖最后由 JoyWu 于 2014-4-13 13:12 编辑




在PIT的中断服务函数里面 屏蔽IIC通讯;用pit_delay_us(pit1,200)替代;采集到的图像也是这样的情况

当我把PIT的中断服务函数里面置空,或者用pit_delay_us(pit1,100) (注意是100us延时代替;图像采集正常,每一场都能采完

我自己的分析 :1 、应该不是总线争用问题;因为屏蔽IIC通讯,用延时函数200us延时代替,问题依旧;
                       2、图像的每一场开场信号都能采集到,前部分的图像采集正常,说明图像采集程序没有问题
                      3、PIT中断影响了图像的DMA传输;但是已开启中断嵌套,抢占式优先级;PIT定时中断优先级最低。应该不是PIT影响图像DMA采集;
                      4、不能采集到的图像位于后半场,并且连续且固定;随着PIT服务函数里面执行时间变长(未超出定时时间)而增加
请教山外哥,问题到底在哪???

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-4-13 13:50:48 | 显示全部楼层
pit中断是不会影响DMA采集的,我们的调试器也用到摄像头采集和按键定时扫描。
回复 支持 反对

使用道具 举报

发表于 2014-4-13 13:52:28 | 显示全部楼层
试下开启PIT定时中断,但里面仅仅清标志位,没其他工作,看看效果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-13 14:07:06 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-13 13:52
试下开启PIT定时中断,但里面仅仅清标志位,没其他工作,看看效果

图像采集正常;没有问题
回复 支持 反对

使用道具 举报

发表于 2014-4-13 16:09:49 | 显示全部楼层
JoyWu 发表于 2014-4-13 14:07
图像采集正常;没有问题

需要排除法来看看是PIT里面的什么代码导致的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-13 16:26:42 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-13 16:09
需要排除法来看看是PIT里面的什么代码导致的

屏蔽中断服务函数里面的所有程序,用200us延时代替,采集图像出现问题,表明问题不是服务函数里面的
回复 支持 反对

使用道具 举报

发表于 2014-4-13 16:32:59 | 显示全部楼层
JoyWu 发表于 2014-4-13 16:26
屏蔽中断服务函数里面的所有程序,用200us延时代替,采集图像出现问题,表明问题不是服务函数里面的

这情况,我也不知道是怎么回事。延时跟DMA采集没啥影响的啊。
回复 支持 反对

使用道具 举报

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

本版积分规则

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