DelayMs()函数
时间: 2023-11-14 10:20:06 浏览: 681
DelayMs() 函数是一种用于延迟一定时间的函数,其中“Ms”代表毫秒。它通常用于嵌入式系统或单片机开发中,可以在程序中产生一段时间的延迟,以便等待某些操作完成或者控制硬件设备的行为。
这个函数的实现方式可能因不同的硬件平台而有所不同,但通常采用的原理是在特定的时间间隔内循环执行某些无关紧要的操作,以产生延迟效果。例如,在某些单片机中可能会使用定时器或者外部晶振来实现延迟。
下面是一个 C 语言的 DelayMs() 函数的示例代码:
```
void DelayMs(unsigned int msec)
{
unsigned int i, j;
for (i = 0; i < msec; i++) {
for (j = 0; j < 12000; j++) {
// 某些无关紧要的操作,以产生延迟效果
}
}
}
```
这个函数的参数 msec 表示需要延迟的毫秒数,内部使用了两个嵌套的 for 循环来实现延迟。具体的延迟时间可以根据硬件平台和需要进行调整。
相关问题
delayms缺少函数原型
如果你使用的是C语言的话,通常情况下需要在你的代码文件中包含一个头文件来声明delayms函数的原型。如果你使用的是标准库函数,可以在头文件"stdio.h"中找到它的原型;如果你使用的是自己编写的函数,你需要在代码文件的开头声明该函数的原型。
例如,如果你的代码文件中有以下代码:
```c
void delayms(int ms);
```
你需要在代码文件的开头添加以下声明:
```c
void delayms(int ms);
```
这样编译器就能够识别delayms函数的原型了。
delayMS()函数
两个引用中分别给出了两个不同的延时函数。
1. 引用中的Delay_ms函数,参数为unsigned int类型的时间,单位为ms,使用的是嵌入式系统中的汇编指令实现延时。其中,每个循环所执行的时间为187/24M=7.8us左右,即每次循环延时约为7.8us。
2. 引用中的delayms函数,参数为uchar类型的时间,单位为ms,使用的是两个for循环实现延时。其中,每次循环所执行的时间为120/12M=10us左右,即每次循环延时约为10us。
下面是两个函数的示例代码:
1. Delay_ms函数
```c
void Delay_ms(unsigned int time) {
unsigned char n;
while(time > 0) {
for(n=0; n<187; ++n) {
asm("nop");
}
time--;
}
}
```
2. delayms函数
```c
void delayms(uchar x) {
int i, j;
for(i=x; i>0; i--) {
for(j=0; j<120; j++);
}
}
```
阅读全文