我有一个用 C 语言编写的微控制器代码。根据我的例子,我使用函数“ void osSleep(tU32 ticks)
”来停止程序一段时间。不幸的是,我不知道它是如何工作的以及它对我的微控制器有什么作用(哪些引脚、状态等设置为什么值)。
我已经找到了 setBuzzer() 函数,因为我有它的来源:
void setBuzzer(tBool on)
{
if (TRUE == on)
IOCLR = BUZZER_PIN;
else
IOSET = BUZZER_PIN;
}
所以 GPIO 端口设置为 1 或 0 用于与蜂鸣器相关的 PIN(BUZZER_PIN = 0x00002000)。蜂鸣器有一个引脚,所以我可以启用和禁用它(高电压和低电压)。
我想对 osSleep() 进行类似的分析,但奇怪的是,我在整个代码中找不到它的实现,只有声明:
void osSleep(tU32 ticks);
也许该功能在某个库中。无论如何,我想知道它在较低级别上是如何工作的(例如,当我调用它时,定时器会发生什么,执行什么指令 - 就像在蜂鸣器示例中一样)。
此外, Embedded Artists的文档中只有一个名为“Pre-emptive Operating System v 1.4.0”的代码的高级简短定义。