您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 技术讨论区 -> BF531 IO口 FIO 开启后,拉低,PPI不进中断... 
本帖共有706个阅读者
发表帖子 发表投票 回复主题
BF531 IO口 FIO 开启后,拉低,PPI不进中断
rolcye(论坛新手)
rolcye
头衔:社区公民
帮派:无帮无派
帖数:14
金钱:214
积分:18
注册时间:2012/7/16
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF531 IO口 FIO 开启后,拉低,PPI不进中断
Andy 你好,

     我用你们的cvbs_in示例程序,自己做应用,做了一些修改,没有修改PPI部分的代码;我发现一个问题,我设置PF1为输出时,如果输出低电平,图像采集程序将不会进入DMA中断。
     典型代码如下:

// 初始化摄像头
cvbs_input();
Init_Interrupts();

Video_Frame_Capture();
while(GabberFlag);// 此处可以正常进入PPI中断
delay(6000);

*pFIO_DIR |= PF1;// SREQ
*pFIO_FLAG_C |= PF1;// 置低 (如果置高则正常,置低无法进入DMA中断)

Video_Frame_Capture();
while(GabberFlag);// 在此处死循环

奇怪的是,如果PF1设置成输出,置高,则正常;置低就不会进入DMA中断;但是我没有配置FIO中断,为什么IO口配置成低电平就不能进入DMA中断呢?

附上PPI配置函数如下:

void   Video_Frame_Capture(void)
{
*pPPI_FRAME =625;  
*pPPI_COUNT = 1439;
*pPPI_DELAY = 283;

*pPPI_CONTROL = 0x0060;

*pDMA0_START_ADDR = 0;
*pDMA0_X_COUNT = 720*2;
*pDMA0_X_MODIFY = 1;
*pDMA0_Y_COUNT = 625;
*pDMA0_Y_MODIFY = 1;
*pDMA0_PERIPHERAL_MAP = 0x0;
*pDMA0_CONFIG =  WNR | WDSIZE_8| DMA2D| DI_EN ;

*pDMA0_CONFIG |= DMAEN;
ssync();
*pPPI_CONTROL |= PORT_EN;
ssync();
}

void Init_Interrupts(void)
{
*pSIC_IAR0 = *pSIC_IAR0 & 0xffffffff | 0x00000000;
*pSIC_IAR1 = *pSIC_IAR1 & 0xffffffff | 0x00000001;
*pSIC_IAR2 = *pSIC_IAR2 & 0xffffffff | 0x00000000;
register_handler(ik_ivg8, DMA0_PPI_ISR);
   *pSIC_IMASK=0x00000100;
}

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/6/18 18:42:34
rolcye(论坛新手)
rolcye
头衔:社区公民
帮派:无帮无派
帖数:14
金钱:214
积分:18
注册时间:2012/7/16
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
顺便说一下,PF1并不是偶然,PF0,PF2,PF3输出置低也会出现以上问题。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/6/18 18:44:46
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
现在手上没板子,回头查一下。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/6/19 21:31:15
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154112 Call, 1 Queries, Processed in 0.027344 second(s),