网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月08日漏签0天
c语言吧 关注:801,743贴子:4,375,205
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 12回复贴,共1页
<<返回c语言吧
>0< 加载中...

问题如下,请贴吧大佬指点迷津一下

  • 只看楼主
  • 收藏

  • 回复
  • 厦门大学821
  • 路人
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
想写一个任务,每50μs执行一次主函数,然后前20μs执行完主函数所有任务,剩余的时间30μs进入中断函数。由于中断函数的任务执行完需要1ms。请问有没有办法实现中断函数中执行30μ后退回主函数,然后再执行主函数,再进入中断函数再继续运行。重复多次直到中断函数中的任务完成。
刚开始写,很多地方都不懂,想请贴吧大佬指点一下。
像这种的可以实现吗?


  • 宇文nick
  • 彩虹面包
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
单片机?


2026-01-08 01:12:32
广告
不感兴趣
开通SVIP免广告
  • 贴吧用户_52AWKJt
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你这个问题感觉是一个上下文切换的问题,这种一般操作系统都支持吧。你是要裸机自己写?


  • 贴吧用户_52AWKJt
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用操作系统,操作系统就是专门处理这种问题的


  • 星辰的彼方
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在传统的微控制器编程中,中断服务例程(ISR)通常在某个事件(如定时器到期、外部引脚变化等)发生时被调用,并且在执行完其任务后返回到主程序。中断服务例程通常被设计为尽可能快地执行并返回,以便主程序可以继续执行。因此,通常不会在中断服务例程中执行长时间的任务。
然而,你的需求是在中断服务例程中执行一个长时间的任务,但是你希望这个任务可以被主程序打断,然后在主程序执行完后再回到中断服务例程继续执行。这种需求在传统的微控制器编程中是比较难以实现的,因为中断服务例程通常不能被打断。
但是,你可以通过一些技巧来实现类似的功能。一种可能的方法是将你的长时间任务分解为多个小任务,每个小任务的执行时间不超过30μs。然后,在你的中断服务例程中,只执行一个小任务,然后返回。这样,你的主程序就可以在每个小任务之间执行。
另一种可能的方法是使用操作系统,如FreeRTOS等。这些操作系统提供了任务切换的功能,可以在一个任务执行一段时间后切换到另一个任务。你可以将你的主程序和中断服务例程作为两个不同的任务,然后使用操作系统的任务切换功能来在它们之间切换。
但是,这些方法都需要你对你的代码进行大量的修改,并且可能会增加代码的复杂性。因此,如果可能的话,最好的方法可能是重新设计你的程序,使得你的中断服务例程可以尽可能快地执行并返回,而将长时间的任务放在主程序中执行。


  • 万事皆有因果
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
自己开定时器配合标志位切换任务即可。需要你了解处理器中断处理相关的详细工作步骤。51片的话那是相当的简单,拎个T0中断进去了SP里抠出来地址,切下RS保护好现场,然后照标志位往SP里塞好先前没完活的任务位置,一个RETI跳转就完了。


  • 幻化成风嘿嘿
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是想通过软件实现中断?还是有硬件支持,有硬件好办,


  • 一棵树木
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
反过来就好了。把定时器的任务放到主循环,把主函数任务放到定时器。


2026-01-08 01:06:32
广告
不感兴趣
开通SVIP免广告
  • 醴曩
  • 麻婆豆腐
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
单片机可以用cpu中断来做吧,软实现的话我能想到的是协程


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 12回复贴,共1页
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示