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

请教一个中断问题

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2026-01-08 10:11:26

9

主题

315

回帖

1855

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:621
  • 最近打卡:2026-03-05 11:00:33

10

主题

24

回帖

2466

积分

金牌会员

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

可能我说的不清楚

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

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:633
  • 最近打卡:2026-03-05 12:16:08
已绑定手机

52

主题

2463

回帖

8724

积分

论坛元老

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2026-01-08 10:11:26

9

主题

315

回帖

1855

积分

金牌会员

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

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

case1 到 case5001就是延时5秒
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-6 06:46 , Processed in 0.104653 second(s), 53 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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