在Linux程序中使用udelay(微秒級延時)可以通過以下幾種方法實現:
#include <unistd.h>
int main() {
usleep(1000); // 延時1毫秒
return 0;
}
#include <time.h>
int main() {
struct timespec ts;
ts.tv_sec = 0;
ts.tv_nsec = 1000000; // 延時1毫秒
nanosleep(&ts, NULL);
return 0;
}
#include <stdint.h>
void udelay(uint32_t usec) {
uint32_t cycles = usec * 1000 / 4; // 假設CPU頻率是1GHz
for (uint32_t i = 0; i < cycles; i++) {
asm volatile ("nop");
}
}
int main() {
udelay(1000); // 延時1毫秒
return 0;
}