c - 实现delay()而不使用time()

标签 c time delay

我正在为嵌入式设备编写代码(没有操作系统,因此没有系统调用或任何东西),我需要延迟,但编译器不提供time.h。我还有什么其他选择?

最佳答案

根据系统的时钟,您可以使用 NOP(无操作)汇编指令来实现延迟。您可以根据系统的 MIPS 来计算一个 NOP 的时间,例如,如果 1 NOP1[us],那么您可以实现类似以下内容:

void delay(int ms)
{
    int i;
    for (i = 0; i < ms*1000; i++)
    {
        asm(NOP);
    }
}

关于c - 实现delay()而不使用time(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17937103/

相关文章:

c - 无法检测到第二次机会异常?

mysql - 如何在 MySQL 中将持续时间值存储为 TIME 数据类型?

python - 随时间序列迭代

作为计时器的 Android 处理程序不准确

opencv - 延迟使用OpenCv播放AVI

c++ - 如何在 C/C++ 中将非 ASCII 字符注入(inject)字符串文字

c - 为字符串文字分配一个数组

在 C 中从 main 调用 void* 函数

c# - 从 0 :00 or 00:00 to 00:00:00 转换持续时间

Java KeyListener 是延迟注册