C++;超时功能 我想在ATMEL评估工具包上实现C++中的超时功能。

C++;超时功能 我想在ATMEL评估工具包上实现C++中的超时功能。,c++,timeout,microcontroller,atmel,C++,Timeout,Microcontroller,Atmel,程序应打开函数“start()”,如果该函数未在“0.5s”内完成,则应终止该函数 有没有任何现有的功能来做这样的工作 重视 物料是:标准::未来::等待。您可以获得future\u status::ready或future\u status::timeout根据我的经验,这些函数都是手工制作的,因为在嵌入式系统中,目标系统没有标准化 您可以购买一个操作系统,并使用诸如消息超时和睡眠等方法 如果没有操作系统,您必须使用定时器和定时器中断(ISR)自行设计功能 尝试在被调用者中使用sleep,然后

程序应打开函数“start()”,如果该函数未在“0.5s”内完成,则应终止该函数

有没有任何现有的功能来做这样的工作

重视
物料

是:
标准::未来::等待
。您可以获得
future\u status::ready
future\u status::timeout

根据我的经验,这些函数都是手工制作的,因为在嵌入式系统中,目标系统没有标准化

您可以购买一个操作系统,并使用诸如消息超时和睡眠等方法


如果没有操作系统,您必须使用定时器和定时器中断(ISR)自行设计功能

尝试在被调用者中使用sleep,然后在睡眠后返回调用者look(位于
std::async
std::chrono
@AliKazmi:sleep函数需要操作系统)。嵌入式系统可能没有操作系统。@OMGtechy std:chrono给我一个函数的时间周期,但是如果它因为大的计算或错误而挂起在函数中,我就不能终止该函数,因为我得到结果太晚了。这只有在C++11中才可能(-std=C++11或-std=C++0x,具体取决于编译器)。在C++03上,您必须使用操作系统调用(如果有)或通过interrupt@elvis.dukaj:当然可以。但是问题并没有被标记为C++ 03或C++ 14,所以合理的假设是C++,正如今天定义的那样。有没有定时器如何创建一个带定时器和定时器中断的超时?目前我不知道如何实现这样的事情。如果程序挂起在函数start()中,如何访问计时器数据?也许这只是一个推理上的错误,但我现在不明白。@matl它对硬件非常具体。您必须参考环境中提供的库