用C语言写一个for循环的延时函数
时间: 2023-12-01 16:04:35 浏览: 158
以下是用C语言编写的for循环延时函数:
```c
void delay(int milliseconds) {
int i, j;
for(i = 0; i < milliseconds; i++) {
for(j = 0; j < 1000; j++) {
// 空循环
}
}
}
```
这个函数使用了两个嵌套的for循环,内部循环执行1000次,外部循环执行指定的毫秒数。由于循环体内没有执行任何实际的操作,因此这个函数会让程序暂停执行,实现延时的效果。
相关问题
用C语言for循环写一个通用延时函数
好的,以下是用C语言for循环写一个通用延时函数的示例代码:
```
void delay(unsigned int ms) {
for(unsigned int i = 0; i < ms; i++) {
for(unsigned int j = 0; j < 120; j++) {
// do nothing
}
}
}
```
注意:这个延时函数的精度取决于循环次数,而循环次数又与处理器的时钟频率有关,因此在不同的处理器上可能需要调整循环次数以达到需要的延时精度。另外,这个函数会占用 CPU 的运算资源,因此不适用于需要同时进行其他操作的场景。
C语言用for循环写一个单位us的延时函数
可以使用以下代码来写一个单位为us的延时函数:
```
void delay_us(unsigned int us) {
unsigned long us_count = us * (F_CPU / 1000000); // F_CPU为CPU频率
__asm__ volatile (
"1: sbiw %0,1" "\n\t" // 执行 CPU 指令
"brne 1b" : "=w" (us_count) : "0" (us_count)
);
}
```
这样就可以使用 for 循环来实现一个单位为us的延时函数了。
阅读全文