您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]配置串口中断和引脚PG12中断的问题
本帖共有324个阅读者
发表帖子 发表投票 回复主题
[求助]配置串口中断和引脚PG12中断的问题
feelingliang(论坛新手)
feelingliang
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:275
积分:27
注册时间:2017/9/14
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]配置串口中断和引脚PG12中断的问题
标题:配置串口中断和引脚PG12中断,但只有PG12可以产生中断,而串口中断无法触发,但去掉PG12的中断配置,串口中断就正常了????

配置串口中断和引脚PG12中断,为什么只有PG12可以产生中断,而串口中断无法触发?
当把中断是初始化函数中的 PG12的中断配置语句去掉(红色字体),则串口会产生中断,但加上PG12的中断配置语句,串口的中断功能就没用了???

EX_INTERRUPT_HANDLER(UART1_ISR1) //串口中断函数
{
if(*pUART1_LSR&DR)          //判断是否有新的数据。
{
   if(cont>65) //防止buff溢出,测试代码,将接收到的数据重复写入512字节的buff
{
   cont = 0;
}
RXbuf[cont]=*pUART1_RBR;
cont++;
}

}
EX_INTERRUPT_HANDLER(FlagA_ISR1) //PG12引脚中断函数
{
if((*pPORTGIO&PG12) == PG12)
     z=1;

}    



void Init_Interrupts(void) //中断初始化
{
*pSIC_IAR0 = 0xffffffff;    
*pSIC_IAR1 = 0xffffffff;     // UART 中断定义
*pSIC_IAR3 = 0xfffffff3;   //中断源UART1 RX 中断等级IVG10,对应的值为3
register_handler(ik_ivg10, UART1_ISR1);
*pSIC_IMASK0 = 0x01000000;  //使能中断, 中断源UART1 RX 在SIC_IMASK0上对应的是bit24位,即第25个

     *pSIC_IAR5 = 0xfffffff5; //中断源PG12 中断等级IVG12,对应的值为5
register_handler(ik_ivg12, FlagA_ISR1);
*pSIC_IMASK1 = 0x00000100; //使能中断, 中断源PG 在SIC_IMASK1上对应的是bit8位,即第9个
}




「该帖子被 OpenADSP 在 2017-12-13 08:41:10 编辑过」

夜空中最亮的星
等级:论坛新手 参考IP地址:*.*.*.*
2017/12/12 16:33:10
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
什么处理器?还是518的问题?提问把信息给全啊,不要让我们猜。

另外你得标题不要写这么长,太长了超出限制,就无法回帖了,我帮你改了一下。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2017/12/13 8:39:47
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你按这么来提问,效率会高很多。


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2017/12/13 8:41:57
feelingliang(论坛新手)
feelingliang
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:275
积分:27
注册时间:2017/9/14
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
谢谢您的提醒,我以后会把内容写的详细一些。
我用的是ADI的BF518处理器,开发环境用的是VDSP,
PG12引脚(有上拉电阻)输入的是秒脉冲信号,串口输入的是时间信息,配置串口中断和PG12引脚中断,
实现的功能是:当秒脉冲的上升沿到来时,PG12进入中断,调用相应的中函数。当串口有数据进来的时候,触发串口中断,调用串口的中断函数,写如串口的的数据是1s中写一次。
这两个中断配置完之后,运行程序后,PG12会根据秒脉冲的到来进入中断,每秒都调用中断函数,但串口的中断函数却要等一段时间后才调用,而串口也应该每秒钟都调用中断函数才对。
当把PG12的中断配置注释掉之后,串口的中断调用就正常了。不知道在哪里出现了问题,不能同时配置多个中断吗??


夜空中最亮的星
等级:论坛新手 参考IP地址:*.*.*.*
2017/12/13 10:36:06
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
io中断太频繁了,抢了串口中断。一种方法是不要让io中断太频繁,看看io中断触发条件是否有问题,另一种就是io中断不使用时,可以先屏蔽掉,为串口让路,需要时再打开

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2017/12/18 8:17:35
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159348 Call, 1 Queries, Processed in 0.015625 second(s),