delay.c
来自「采用Atmega16的变频式超声波发生器的源代码」· C语言 代码 · 共 57 行
C
57 行
#include"main.h"
void delay_us(uint time) //4us to 1024us(1ms)
{
sbi(TIFR,TOV0);
sbi(TCCR0,CS00);
TCNT0=(255-(time>>2)); // 1/(16000000/64)=4us time>>2 is faster than time/4
loop_until_bit_is_set(TIFR,TOV0);
}
void delay_ms(uint time)
{
for(;time>0;time--)
delay_us(1000);
}
/*
extern const unsigned char xtal;
void delay_1ms(void)
{ uint i;
for(i=1;i<(xtal*143-2);i++); //xtal unit : MHZ
}
void delay_ms(uint n)
{
for(;n>0;n--)
delay_1ms();
}
void delay_1us(void)
{
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
void delay_us(uint n)
{n<<=1;
n-=2;
do
{
n--;
asm("nop");
asm("nop");
}
while(n>0);
asm("nop");
asm("nop");
asm("nop");
}
*/
//#define _delay_ms delay_ms
//#define _delay_us delay_us
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?