OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2343|回复: 4

中断中的延时函数,有没有更好的方法

[复制链接]

8

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-10-27
在线时间
36 小时
发表于 2019-8-2 09:53:38 | 显示全部楼层 |阅读模式
1金钱
现在想在定时中断中用模拟iic程序,模拟icc中的us延时函数,主函数和中断函数中都有用到其延时函数中一些全局变量在被调用的函数中都有改变,引起函数重入的问题,这样函数返回的时候寄存器的值已经改变了,有没有其它好的us延时程序,只能for吗

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-8-2 17:54:22 | 显示全部楼层
重新增加一个延时变量专门给IIC用
回复

使用道具 举报

31

主题

1954

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4512
金钱
4512
注册时间
2018-5-11
在线时间
944 小时
发表于 2019-8-3 10:38:41 | 显示全部楼层
这种设计本身就存在问题。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

0

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
319
金钱
319
注册时间
2017-6-19
在线时间
64 小时
发表于 2019-8-3 16:29:59 | 显示全部楼层
赶紧回头是岸,你的思想很危险。中断应该快进快出。不要在中断里面放延时,也不要在里面做复杂的运算。搞个u8类型做标志位,中断里面置1。主循环查询标志并处理,处理完标志清0。
回复

使用道具 举报

8

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2017-10-27
在线时间
36 小时
 楼主| 发表于 2019-8-4 09:34:48 | 显示全部楼层
有个iic的扩展芯片,想用这个扩展芯片在定时器里反转电平,做标志位怕影响实时性
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-30 19:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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