您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 【已解决】BF561 读取部分图片不成功原因
本帖共有756个阅读者
发表帖子 发表投票 回复主题
【已解决】BF561 读取部分图片不成功原因
red_wlh(论坛新手)
red_wlh
头衔:社区公民
帮派:无帮无派
帖数:34
金钱:359
积分:41
注册时间:2012/4/9
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
【已解决】BF561 读取部分图片不成功原因

// entire_field = 1  ,pack32 = 1 ,First_Header 缓存地址 ,pixel = 858  lines = 525

//  这个函数是ADSP 安装程序的BF561 Video Input-Output (C)程序  运行后能正常读取First_Header  中的视频内容

void InitPPI0(bool entire_field, bool pack32, tDMA_descriptor* First_Header, short pixel, short lines)
{

short transfer_length_bytes = ((pack32) ? 4 : 1);

// configure PPI0 - not enabled yet
*pPPI0_CONTROL = (entire_field << 2) | FLD_SEL | (pack32 << 7)| (pack32 << 8);

*pPPI0_FRAME = lines;

ssync();

// configure DMA for PPI0 - not enabled yet 429
*pDMA1_0_X_COUNT = pixel * sizeof(short) / transfer_length_bytes; // 2 bytes for each pixel, count divided by four if 32-bit DMA transfers are done
*pDMA1_0_Y_COUNT = lines;  // 525 507
*pDMA1_0_X_MODIFY = transfer_length_bytes;  // 步长 4
*pDMA1_0_Y_MODIFY = transfer_length_bytes;  // 步长 4

*pDMA1_0_NEXT_DESC_PTR = First_Header;
*pDMA1_0_CONFIG = 0x7000 | 0x0400 | DI_EN | DMA2D | (pack32 << 3) | WNR;


ssync();

}

然后,我想只读取  前面100行数据

// entire_field = 1  ,pack32 = 1 ,First_Header 缓存地址 ,pixel = 858  lines = 100 (改)

void InitPPI0(bool entire_field, bool pack32, tDMA_descriptor* First_Header, short pixel, short lines)
{

short transfer_length_bytes = ((pack32) ? 4 : 1);

// configure PPI0 - not enabled yet
*pPPI0_CONTROL = (entire_field << 2) | FLD_SEL | (pack32 << 7)| (pack32 << 8);

// *pPPI0_FRAME = lines;

*pPPI0_FRAME = 525;

ssync();

// configure DMA for PPI0 - not enabled yet 429
*pDMA1_0_X_COUNT = pixel * sizeof(short) / transfer_length_bytes; // 2 bytes for each pixel, count divided by four if 32-bit DMA transfers are done
*pDMA1_0_Y_COUNT = lines;  // 525 507
*pDMA1_0_X_MODIFY = transfer_length_bytes;  // 步长 4
*pDMA1_0_Y_MODIFY = transfer_length_bytes;  // 步长 4

*pDMA1_0_NEXT_DESC_PTR = First_Header;
*pDMA1_0_CONFIG = 0x7000 | 0x0400 | DI_EN | DMA2D | (pack32 << 3) | WNR;


ssync();

}

但输出的数据是乱码 请高手分析下,还需要改哪些地方?谢谢




上传的图片
  20129317422076.bmp [ 251.62 KB 858×100 ] (缩略时请点击查看原图)

 


学习DSP中
等级:论坛新手 参考IP地址:*.*.*.*
2012/9/3 17:42:51
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
应该就是你这么改的,你打开PPI和DMA的寄存器,先运行一下正常的,抓图记录下配置值,然后再改成你这样的,再运行一次,抓图比较值是不是除了你改的,其他的都没变。或者你别改他的变量名,你直接把100付给Y计数,Lin还保持他的525...。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/9/3 19:48:28
red_wlh(论坛新手)
red_wlh
头衔:社区公民
帮派:无帮无派
帖数:34
金钱:359
积分:41
注册时间:2012/4/9
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

修改了,再进行调试,图片数据还是不行。

我换了停止模式 FLOW = 000;

可以实现只读前面的视图.但如果我需要读中间的 100 ->200之间的图片数据呢?怎么做呀,谢谢了!


学习DSP中
等级:论坛新手 参考IP地址:*.*.*.*
2012/9/4 11:46:36
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
561上貌似不可以只读中间的,只能把前面的数据都读出,然后裁剪。54X系列有一个Y delay的寄存器,配置可以delay多少行后再采集,其他blackfin只有xdelay寄存器,只能控制一行延时几个点再采集。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/9/4 12:34:26
red_wlh(论坛新手)
red_wlh
头衔:社区公民
帮派:无帮无派
帖数:34
金钱:359
积分:41
注册时间:2012/4/9
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

因为我使用的是BF592(BF592板子还没到手,先用BF561练下手)芯片,因为不能外接RAM,又需要完整的处理一张视频图像(当然可以不必实时处理),而BF592只有32KRAM  内存不够用. 应该用什么方法,把图片数据完整的处理一次呢! 谢谢



「该帖子被 red_wlh 在 2012-09-04 14:02:16 编辑过」

学习DSP中
等级:论坛新手 参考IP地址:*.*.*.*
2012/9/4 13:59:24
尊贵身份标志
夜色飘摇(论坛版主)
夜色飘摇
头衔:社区公民
帮派:无帮无派
帖数:350
金钱:1773
积分:332
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
一条一条的采。二值化

我要成为勇敢的海上战士!
等级:论坛版主 参考IP地址:*.*.*.*
2012/9/4 15:38:49
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

忍不住还是要推荐一下OpenADSP开源社区的BF5920开发板和仿真器把:

BF592开发板:http://item.taobao.com/item.htm?spm=a1z10.1.3.1&id=15329805229

BF592核心板:http://item.taobao.com/item.htm?spm=a1z10.3.17.25&id=13754913251

Blackfin仿真器:http://item.taobao.com/item.htm?spm=a1z10.3.17.17&id=8842330668

欢迎支持!

PS:592开发板都已经做好了摄像头采集模块勒哦。


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/9/4 15:44:24
red_wlh(论坛新手)
red_wlh
头衔:社区公民
帮派:无帮无派
帖数:34
金钱:359
积分:41
注册时间:2012/4/9
7信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

嘿嘿,顶一个


学习DSP中
等级:论坛新手 参考IP地址:*.*.*.*
2012/9/5 17:22:53
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159200 Call, 1 Queries, Processed in 0.015625 second(s),