您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> CMOS采集同步信号设置问题
本帖共有1015个阅读者
发表帖子 发表投票 回复主题
CMOS采集同步信号设置问题
unconscious(论坛新手)
unconscious
头衔:社区公民
帮派:无帮无派
帖数:67
金钱:746
积分:86
注册时间:2013/8/2
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
CMOS采集同步信号设置问题

图一:

上传的图片
  20143201845502.png [ 8.06 KB 700×290 ] (缩略时请点击查看原图)

 

图二:
上传的图片
  201432016465309.png [ 6.32 KB 599×286 ] (缩略时请点击查看原图)

 


你好,如上图二所示,我想在一帧图像的某一行打开LED,如A处,然后关掉如B处。
我之前调出来了,如图一,是根据采集每一行进一次中断,然后进行count计数,从而开关LED。
问题是:每一帧图像要进行处理,处理完后再打开PPI/DMA接收下一帧图像。这样的话,下一次LED开/关会和上一次LED开/关之间空掉一帧(或者好几帧,根据图像处理时间而定)。
我想做到如图二所示的,每一个VCLK都能和LED同步,并不影响采集(处理)流程,请问应该如何设置?谢谢!

^_^
等级:论坛新手 参考IP地址:*.*.*.*
2014/3/20 18:52:58
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
采集一帧处理一帧肯定会丢帧,你需要用乒乓buffer机制,这样你在采集 下一帧时,可以处理上一帧数据,不过你要确保你的处理时间小于1帧的采集时间,否则还会丢帧。乒乓buffer例子代码见:

这个是一条线一条线采的,你给改成一帧一帧的,每帧结束后,启动采集下一帧,然后处理上一帧,在下一帧完成前,处理完上一帧。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/3/21 10:06:54
unconscious(论坛新手)
unconscious
头衔:社区公民
帮派:无帮无派
帖数:67
金钱:746
积分:86
注册时间:2013/8/2
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
谢谢!我现在就是乒乓buffer的模式,边处理边采集的。但是处理的时间比较长,比采集一帧的时间长很多。我在想如果让LED不在PPI中断里边做,让他只和硬件有关,然后和VCLK同步,但是我想不明白流程,不知道有没有这样的设置?多谢andy一直耐心指导!

^_^
等级:论坛新手 参考IP地址:*.*.*.*
2014/3/21 10:15:54
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你看看你的场同步用的是哪个定时器,试试打开这个定时器中断,这个中断就是场同步,你试试看行不行。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/3/21 23:41:55
unconscious(论坛新手)
unconscious
头衔:社区公民
帮派:无帮无派
帖数:67
金钱:746
积分:86
注册时间:2013/8/2
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

开了FS1行同步的timer0的中断,打算用count计数,来控制IED,但是timer0中断进不去。不知道还有什么其他的办法吗?

不知道要不要设置*pTIMER0_CONFIG、*pTIMER0_PERIOD、*pTIMER0_WIDTH这三个寄存器?

还有ADSP_BF51X_CORE说明文档V1.0中PPI那节,*pTIMER0_WIDTH = 41;*pTIMER1_WIDTH = 5250;请问这两个数是怎么得到的?



「该帖子被 unconscious 在 2014-03-24 15:01:25 编辑过」

^_^
等级:论坛新手 参考IP地址:*.*.*.*
2014/3/24 15:00:19
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
忘记了,这个的行场同步是外部CMOS提供的,不能开这个定时器,如果你想精确计算开关LED,只能一条线一条线采集,每一条线进一次中断,自己在中断中做个计数。

*pTIMER0_WIDTH = 41;*pTIMER1_WIDTH = 5250;
这个是PPI接口产生同步信号时,同步信号脉冲的宽度,没有特别的规定,只要宽度满足要求的时序宽度即可。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/3/25 22:48:43
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159171 Call, 1 Queries, Processed in 0.033203 second(s),