专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
F28026程序跑飞,知道的朋友帮个忙啊(问题已经解决,楼下给出了方法,关心的来看下)
2019-03-26 16:45
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
DSP
3806
8
1277
定义了一个函数fun,和一个中断服务函数isr,都在内存中跑。fun里面定义一些局部变量,并且这个函数只有isr会调用。现在发现如果这个函数比较大(其实也不是很大,就几十行)情况下,程序就会跑飞。如果把局部变量定义为静态变量就没有问题。各位大虾碰到过这种问题吗?郁闷了好几天了,帮帮忙吧!!! [
本帖最后由 w00d 于 2012-3-6 13:50 编辑
] 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
w00d
2019-03-27 14:46
今天我发现是没有在ADCINTFLGCLR中进行清中断,但是我确实在服务函数中最后部分有清中断程序,具体为:
void fun(int a,int b)
{
.....
}
interrupt void isr(void)
{
.......
fun(a,b);
........
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
}
然后我使用全局变量做了一个标志
Uint16 flag;
interrupt void isr(void)
{
flag=0;
.......
fun(a,b);
........
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
flag=1;
}
这样就可以看看每次进入中断后有没有清中断。实验发现,即使不进入中断了flag也是1,也就是说确实是清了中断的,我再在CCS里面把ADCINTFLGCLR赋1,又可以进入中断了,但是程序跑了一会儿又不进中断了。
郁闷啊,也不知道是怎么回事。。。
加载中...
查看其它8个回答
一周热门
更多
>
相关问题
相关文章
事件管理器――PWM
0个评论
FPGA时序分析基础(二):vivado中常用的时序约束命令
0个评论
LDO和BUCK降压稳压器对比
0个评论
伺服控制系统教学实验平台
0个评论
asoc之动态PCM
0个评论
ADS7928
0个评论
基于AD9957实现射频数字化变频模块和AD转换模块的方案详细教程
0个评论
多功能车载DVD智能导航平台
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
void fun(int a,int b)
{
.....
}
interrupt void isr(void)
{
.......
fun(a,b);
........
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
}
然后我使用全局变量做了一个标志
Uint16 flag;
interrupt void isr(void)
{
flag=0;
.......
fun(a,b);
........
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
flag=1;
}
这样就可以看看每次进入中断后有没有清中断。实验发现,即使不进入中断了flag也是1,也就是说确实是清了中断的,我再在CCS里面把ADCINTFLGCLR赋1,又可以进入中断了,但是程序跑了一会儿又不进中断了。
郁闷啊,也不知道是怎么回事。。。
一周热门 更多>