搜索
bottom↓
回复: 18

怎么在while()里面快速判断中断标志?

[复制链接]

出0入0汤圆

发表于 2021-10-14 09:42:27 | 显示全部楼层 |阅读模式
怎么在while()里面快速判断中断标志?
就是whlie(中断标志位)这句怎么执行最快,标志位应该不能直接位访问,需要&=之类的操作,需要消耗时间,有没有其他方法,在2、3个执行周期就可以判断一个中断标志是否置位?或者怎么用汇编的方法也可以?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入33汤圆

发表于 2021-10-14 11:07:05 | 显示全部楼层
你都用中断了,为什么还要while?   在中断响应函数里if一下不就行了?

出0入8汤圆

发表于 2021-10-14 11:09:33 | 显示全部楼层
本帖最后由 security 于 2021-10-14 11:47 编辑

很好奇,为什么需要这么快。
Cortex-M 系列应该有一个 bit-band 位带的功能,你可以去搜索一下。

编辑:
看错了,是要判断中断标志位,那 bit-band 估计不合适,忽略吧。

出0入32汤圆

发表于 2021-10-14 11:22:34 | 显示全部楼层
既然要求这么快,为什么要用查询模式,而不用直接硬件中断模式?

出0入22汤圆

发表于 2021-10-14 12:24:48 | 显示全部楼层
都已经在while(1)里面了,一两个时钟周期 根本不会产生什么影响。

如果对响应数据要求最快,直接读取查询的速度确实是最快的 。中断要入栈  还是要一些时间。

出0入0汤圆

发表于 2021-10-14 12:39:15 | 显示全部楼层
至少5个时钟周期

出0入0汤圆

发表于 2021-10-14 12:47:26 | 显示全部楼层
比如串口中断,你只是开启了串口的接收中断,其它没有开,那么判断啥啊,直接进入中断做其它事情就完了。楼主要知道中断的意义,是为了某些任务快速响应,或者好写。判断是为了同一个外设的不同中断。所以感觉楼主问题很无语

出870入263汤圆

发表于 2021-10-14 12:56:43 | 显示全部楼层
本帖最后由 armstrong 于 2021-10-14 12:58 编辑

一条加载指令;
一条测试指令;
一条跳转指令;
如果只有一个中断,那就用WFI指令。

出0入0汤圆

 楼主| 发表于 2021-10-14 12:56:48 | 显示全部楼层
本帖最后由 ttytty365 于 2021-10-14 12:59 编辑

楼上各位,中断要入栈出栈,比直接查询要慢。要快速查询的目的是一查到中断标志,以最快的时间做下面的事情,是这样的,简单的说就是降低延迟

出0入0汤圆

 楼主| 发表于 2021-10-14 13:00:26 | 显示全部楼层
armstrong 发表于 2021-10-14 12:56
一条加载指令;
一条测试指令;
一条跳转指令;

目前是3条指令,好像不能在少了

出0入0汤圆

发表于 2021-10-14 14:55:54 | 显示全部楼层
ttytty365 发表于 2021-10-14 12:56
楼上各位,中断要入栈出栈,比直接查询要慢。要快速查询的目的是一查到中断标志,以最快的时间做下面的事情 ...

如果有中断标志,难道不是已经发生过中断? 不已经发生了中断的调用?你自己没有代码但是系统本身有个默认的。再此之前,你的while代码并不会被执行到。不开启中断的话,应该没有中断标志位置位。

出0入33汤圆

发表于 2021-10-14 15:17:58 来自手机 | 显示全部楼层
你的while只做检查中断标志这一件事吗?如果不是那就不一定会比硬中断模式响应快。

出0入4汤圆

发表于 2021-10-14 15:30:25 | 显示全部楼层
我感觉楼主的设计有问题,一般是没有这种需求的。

出0入0汤圆

发表于 2021-10-14 15:46:03 | 显示全部楼层
都用查询方式了,还在乎几个时钟周期?中断响应也一样要时间

出0入31汤圆

发表于 2021-10-14 20:43:34 | 显示全部楼层
期待楼主说明一下使用场景

出0入42汤圆

发表于 2021-10-15 07:35:37 来自手机 | 显示全部楼层
有这么快的需求么,要不lz说个完整的在干啥到底要多快

出0入0汤圆

 楼主| 发表于 2021-10-15 08:53:13 | 显示全部楼层
本帖最后由 ttytty365 于 2021-10-15 08:54 编辑
vtte 发表于 2021-10-14 15:17
你的while只做检查中断标志这一件事吗?如果不是那就不一定会比硬中断模式响应快。 ...


cpu就是等着中断标志,不做其他事情。
有坛友验证过吗,到底是进中断服务程序响应快速,还是只查标志响应快?

出0入0汤圆

发表于 2021-10-15 11:01:01 来自手机 | 显示全部楼层
关闭中断,只查标志快

出0入8汤圆

发表于 2021-10-15 11:09:14 | 显示全部楼层
ttytty365 发表于 2021-10-15 08:53
cpu就是等着中断标志,不做其他事情。
有坛友验证过吗,到底是进中断服务程序响应快速,还是只查标志响应 ...

cpu 就是时刻等着中断标志,那就是轮询的快啊。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 09:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表