找回密码
 立即注册
楼主: 摇滚一族

请教一个中断问题

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

积分
1835
发表于 2024-8-29 10:07:50 | 显示全部楼层
摇滚*** 发表于 2024-8-28 17:58
while(1)
{
        switch(step)

你没理解我的代码
你把延时5秒加到case1是画蛇添足
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:319
  • 最近打卡:2025-05-01 20:29:25

10

主题

24

回帖

1142

积分

金牌会员

积分
1142
发表于 2024-8-29 10:28:35 | 显示全部楼层
Lkck*** 发表于 2024-8-29 10:07
你没理解我的代码
你把延时5秒加到case1是画蛇添足

可能我说的不清楚

比方说,我在程序的其它地方,有一个延时5秒的程序(延时5秒只是一个比方)
延时5秒运行2秒时,中断开始
中断结束后,程序会继续执行剩下3秒的程序。
如何打断执行剩下的3秒程序?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-8-29 10:47:33 | 显示全部楼层
摇滚*** 发表于 2024-8-29 10:28
可能我说的不清楚

比方说,我在程序的其它地方,有一个延时5秒的程序(延时5秒只是一个比方)

你这种情况可以在延时函数里面判断一个标志位,如果检测到标志位被中断置位的话,就退出延时并重置step。
而其他网友给你提供的建议是不要使用延时函数,而是通过定时器分时判断方式等待5秒。
例如增加一个延时的case,1ms执行一次,在case里面判断标志位被中断置位的话就重置step,否则累计到5000ms就进入下一个step。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

积分
1835
发表于 2024-8-29 10:47:58 | 显示全部楼层
摇滚*** 发表于 2024-8-29 10:28
可能我说的不清楚

比方说,我在程序的其它地方,有一个延时5秒的程序(延时5秒只是一个比方)

case1 到 case5001就是延时5秒
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:52 , Processed in 0.120253 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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