void delay_nms(unsigned int n) { n=n+1; while(--n) delay_nus(900); }
时间: 2024-04-15 15:25:57 浏览: 150
这是一个简单的延时函数,它会延时指定的毫秒数。在函数中,传入的参数n会自增1,并且在一个循环中每次减1,直到n为0为止。在每次循环中,调用了delay_nus(900)函数,该函数用于延时指定的微秒数。这样就实现了延时n毫秒的功能。不过需要注意的是,delay_nus函数的具体实现没有在这段代码中给出,所以无法确定具体的延时时间。
相关问题
void delay_nus(unsigned int i) { i=i/10; while(--i); } void delay_nms(unsigned int n) { n=n+1; while(--n) delay_nus(900); } delay_nms(200);
这段代码是一个简单的延时函数。它包含两个函数:delay_nus和delay_nms。delay_nus函数用于微秒级延时,而delay_nms函数用于毫秒级延时。
在delay_nus函数中,参数i被除以10,然后使用while循环递减i的值,直到i为0为止。这段代码的目的是实现一个较短的延时。
在delay_nms函数中,参数n被加1,然后使用while循环递减n的值,直到n为0为止。在每次循环中,调用delay_nus函数并传入参数900进行微秒级延时。这段代码的目的是实现一个较长的延时。
最后一行代码delay_nms(200)表示调用delay_nms函数,并传入参数200进行毫秒级延时。这样程序会延时200毫秒。
static void delay_nms(uint n) { uint i; while(n--) { for(i=0;i<550;i++); } } static void delay_us(unsigned int n) { while(--n); }
这是两个延时函数的代码实现。第一个函数`delay_nms()`是以毫秒为单位的延时函数,它通过循环嵌套的方式实现。外层循环控制延时的次数,内层循环则是一个空循环,通过循环次数来实现时间的延时。具体来说,内层循环的循环次数为550,这个值可以根据硬件平台的情况进行调整。第二个函数`delay_us()`是以微秒为单位的延时函数,它使用了一个while循环,并在循环体中对一个计数器进行自减操作,从而实现时间的延时。这个函数的延时精度取决于处理器的时钟频率和编译器的优化程度。需要注意的是,使用延时函数进行时间控制时,应该尽量避免在中断服务程序中使用,以免影响系统的实时性能。
阅读全文