我想模拟在RENODE我的stm32f030按一个按钮5秒。但是我有一些与时间有关的问题,还有RENODE方法来模拟按下和释放按钮
在我的固件中,我将连接到按钮的引脚配置为拉起,也就是说,没有按下按钮的按钮就有Status=TRUE。当按下按钮时,它会转到GND和Status=FALSE。
我在RENODE方法中做了一个“调试”,我模拟了一个Press,然后用按下的方法返回状态,您可以检查:
Press结果为真状态Release导致虚假状态

有可能逆转这种方法吗?还是我把它当作机器人框架中的别名?我发现的文档很少,任何关于我的问题的线索都是受欢迎的。
关于时间问题,当我执行Press方法,然后执行Release方法,等待接近20秒时,它执行的操作是将红色和蓝色LED闪烁在一起,参见下面。然而,在我的固件中,它被配置为在5s之后在计时器中发生中断。

我在正式文档(framework.html)中读到了一些这方面的内容,我怀疑这与此有关,但我还没有确定需要做些什么来修复它。
发布于 2022-09-20 10:31:27
倒转按钮的状态是相当容易的。
与miv-board.repl文件一样,您可以执行以下操作:
user_switch_0: Miscellaneous.Button @ gpioInputs 0
invert: true <--- this is relevant here
-> gpioInputs@0关于时间流,Renode在虚拟时间域中操作,以确保执行的确定性,而不管主机是什么。它可以类似于实时流,但在很大程度上取决于您运行的应用程序类型。如果你经常轮询而不使用中断来睡觉,事情就会变慢。
要获取有关当前虚拟时间的信息,可以运行emulation GetTimeSourceInfo并看到如下输出:
(machine) emulation GetTimeSourceInfo
Elapsed Virtual Time: 00:00:00.304409 <--- you want this to be 5s
Elapsed Host Time: 00:00:00.831891
Current load: 2.5
Cumulative load: 2.73280684868056
State: WaitingForReportBack
Advance immediately: False
Quantum: 00:00:00.000100https://stackoverflow.com/questions/73775370
复制相似问题