电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
中断问题
已解决
73482
个问题
已帮助
5993
位优秀工程师
中断问题
大大的鱼
2018-08-14
浏览量:707
最近在用DMA传送ADC的数据,并且设置了一个数据传送完成DMA中断。但是问题来了,在中断里调用显示函数的时候总是莫名奇妙的会出错。在网上查了下说是共享变量的问题,导致主函数和中断函数冲突了。但是我调用的显示函数并没有更改变量的值啊。
然后我用一个变量赋值语句放在主函数调用显示函数的前、后。主函数里调用显示函数时变量赋值为“忙”,调用完之后赋值为“空闲”。然后在中断函数里用这个全局变量判断是否主函数调用了显示函数。这就避免了冲突。
但是,这就会错过很多次中断,请问各位大佬怎么解决!
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
小小秋风1
这个应该还是显示函数中变量冲突的问题,
主函数也调用,中断函数里也调用,
试想主函数调用一半的时候来了中断,中断里又调用可能会有冲突。
解决的办法,在中断里尽量不要调用显示函数。
显示函数是比较耗时的,为什么非要在中断调用呢?反正主函数也要调用的。
可以在中断函数中设置一个标志,
然后在主函数中查看这个标志,
根据标志的不同来处理显示的工作。
发布于
2018-08-14
举报
评论 0
0
0
其他答案
数量:
7
chen0000009
中断里面不要做这种阻塞性的业务,这些业务应该用一个标志位放到常规任务里面去运行
发布于
2018-08-14
举报
评论 0
0
0
yhj416606438
需要用到操作系统里面的信号量,解决资源共享问题
发布于
2018-08-15
举报
评论 0
0
0
一笔之名也
中断中不可以长时间的占用的,否则程序错乱
发布于
2018-08-15
举报
评论 0
0
0
喵不是好兔纸
这个中断里面最好是做一个互斥锁,对你的资源进行保护,防止被其他线程修改
发布于
2018-08-15
举报
评论 0
0
0
bigCQ
中断函数要尽可能的短,不能长时间的处理,不然你的任务会得不到及时响应
发布于
2018-08-17
举报
评论 0
0
0
勇哥来巡山
中断的的时间不能太长,而且要对资源保护,不能随意访问
发布于
2018-08-25
举报
评论 0
0
0
drepa
本身中断里面的函数就是不可以有延时性太高的操作存在的,你显示屏刷屏,要比中断处理的速度慢得多,你在中断里面调用显示屏显示,会大大影响中断的处理速度,所以数据就出错了。
发布于
2018-08-30
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
中断问题
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: