?? delay.c
字號(hào):
/****************************
** file_name delay.c **
** describe 軟件延時(shí)函數(shù) **
** auther 古欣 **
** Time 2007-1-31 **
*****************************/
#include "delay.h"
/***********************
** 8M晶振下 1us
** 也可以宏定義 8個(gè)asm("nop");
** #define delay_1us asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
***********************/
void delay_1us(void)
{
asm("nop");
}
/***********************
**8M時(shí)為 1000.25us
**4M時(shí)為 999.5us
**xtal 為晶振頻率,單位為Mhz
************************/
void delay_1ms(void)
{
unsigned int i;
for(i=(xtal*143-2);i>0;i--)
;
}
/***********************
** 1S延時(shí),誤差可能稍大
** 250ms*4=1000ms
************************/
void delay_1s(void)
{
unsigned int i;
for(i=250;i>0;i--) //250ms*4=1000ms
delay_1ms();
for(i=250;i>0;i--)
delay_1ms();
for(i=250;i>0;i--)
delay_1ms();
for(i=250;i>0;i--)
delay_1ms();
}
/***********************
**微秒級(jí)延時(shí)
************************/
void delay_us(unsigned int n)
{
unsigned int i;
for(i=n;i>0;i--)
delay_1us();
}
/***********************
**毫秒級(jí)延時(shí)
************************/
void delay_ms(unsigned int n)
{
unsigned int i;
for(i=n;i>0;i--)
delay_1ms();
}
/***********************
**秒級(jí)延時(shí),太浪費(fèi)資源,不建議使用
************************/
void delay_s(unsigned int n)
{
unsigned int i,j;
for(j=n;j>0;j--)
{
for(i=250;i>0;i--) //250ms*4=1000ms
delay_1ms();
for(i=250;i>0;i--)
delay_1ms();
for(i=250;i>0;i--)
delay_1ms();
for(i=250;i>0;i--)
delay_1ms();
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -