阅读:1933回复:8
在BT878使用中如何准确知道BT878已完成一帧的捕获?
我的RISC是从头走到未尾,然后JUMP。
166F3000 : 80008004 166F3004 : 00000000 166F3008 : 80008006 166F300C : 00000000 166F3010 : 80008004 166F3014 : 00000000 166F3018 : 80008006 166F301C : 00000000 166F3020 : 1C000300 166F3024 : 1672A600 : : 166F3918 : 1C000300 166F391C : 166F4900 166F3920 : 70000000 166F3924 : 166F3010 |
|
沙发#
发布于:2002-05-08 15:33
你察看过你中断状态寄存器吗?我写过RISC代码老是报错:OCERR,RISC_EN置不起来。
你想准确知道的一帧已捕获的话,可以设置相应的中断位,通过中断来处理。否则只能大致估计。 :( |
|
|
板凳#
发布于:2002-05-09 15:50
我的RISC_EN可以置起来
中断状态寄存器也正常,只是偶尔出现FBUS错误! 你的OCERR是不是RISC少了同步指令。 如果使用中断的话,要如何做呢? |
|
地板#
发布于:2002-05-14 10:04
打开中断屏蔽位,同时驱动程序里设置相应的中断例程
|
|
|
地下室#
发布于:2002-05-22 11:48
可以通过设置指令的STATUS,及IRQ位,产生中断判断一下DMA
指令运行的大概位置。 不知你们的RISC是如何写的。 我用的是该站提供的例程中封装好的类完成的。 mCmd.Create(pDevExt->pRISCProgram,SYNC,NULL,NULL,0,0,0,0); mCmd.SetSync(pDevExt->pRISCProgram,SC_FM1,1); mCmd.ResetStatus(pDevExt->pRISCProgram,0x0F); for(J=0;J<36;J++) { for(I=0;I<8;I++) { adwAdd[0]=pPhVideoBuff[I].LowPart; awByteCnt[0]=PixelNumberofLine*4; mCmd.Create(pDevExt->pRISCProgram+J*8*2+(I+1)*2, WRIT,awByteCnt,adwAdd,0,1,1,1); } } mCmd.Create(pDevExt->pRISCProgram+578, SYNC,NULL,NULL,0,0,0,0); mCmd.SetSync(pDevExt->pRISCProgram+578,SC_VRE,1); mCmd.SetStatus(pDevExt->pRISCProgram+578,0xA); //jump adwAdd[0]=pPhRiscAdd.LowPart; mCmd.Create(pDevExt->pRISCProgram+580, JUMP,NULL,adwAdd,0,0,0,1); 基本流程是: SYNC FM1 WRIT . . . WRIT SYNC VRE JUMP 这样,在中断处理里读 0x100就可以断。 1。判断11位,为1是DMA指令产生的中断。 2。看31:28的值,为0是WRIT产生的,为A是SYNC产生的。 这端程序可以运行但是经常产生FBUS中断。两位有解决的烦 告诉我一声。 |
|
5楼#
发布于:2002-05-24 09:38
但FBUS对图像采集好像没有什么影响。
|
|
6楼#
发布于:2002-08-07 13:54
FBUS报错说不清楚(可能是你传的数据太长,或者是你是按BYTE使能一来传的)。我是自己写的RISC程序,FBUS没有报错。现在音、视频也都通了。还有一个小问题:将PCM的采样16位转8位时,音频播放速度正常,但音质好次。。。。
|
|
|
7楼#
发布于:2002-08-13 08:37
To Sunbean:
你好,请问你如何设置bt878的音频采样率?在进行音频采样时,能够与视频同步吗? 谢谢。 |
|
8楼#
发布于:2002-08-15 17:05
1、这和你硬件设计有关系。我是通过CS5331a来做音频信号采集的。此芯片的采样频率是一定的:44KHz,18BIT。所以我必须用软件来进行音频格式转换。出现的音频问题也搞定,16BIT有符号位,8BIT没有。
2、一般来说同步的问题与硬件和底层驱动无关,最可能与上层压缩有关 |
|
|