1 / 4
文档名称:

AVR精确延时.doc

格式:doc   大小:23KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

AVR精确延时.doc

上传人:ayst8776 2018/12/2 文件大小:23 KB

下载得到文件列表

AVR精确延时.doc

文档介绍

文档介绍:AVR studio
/*
* AVR studio
* Author: ly
* For AVR mega 8-bit
*/
#include <avr/>
char ii=0;
/************************************
延时Nus函数
n=10:实际8us(8M)
MEGA8:
8M时:(n=1); 1M时:实际延时17us(n=1)
MEGA48:
8M:n=; (n=1) 1M:(n=1)
*************************************/
void delay_nus(unsigned int n)
{
//unsigned int i;
asm("nop");//千万不可省略,或改成ii=8;(ii为全局变量,随便赋值给全局变量)
while(--n>1);
//for(i=1;i<n;i++);
}
/*********************************************
延时1ms函数
MEGA8:
8M:(i<1656); 1M:(i<198)
MEGA48:
8M: (i<1590) 1M : 延时 998us(i<197)
}
**********************************************/
void delay_1ms(void)
{
unsigned int i;
for (i=0;i<198;i++)asm("nop");
}
/************************************
其他延时(8M)
Section 1:
若将i1、i定义为unsigned char延时将缩短
如:定义为char型时-->>i1=
定义为int型时-->>i1=
Section 2(定义为int):
i1=100
Section 3(定义为int):
i1=100
Section 4(定义为int):
i1=100
Section 4=Section 3>Section 1>Section 2 (四种不同方式的语句)
************************************/
void delay1(unsigned int i1)
{
/******* Section 1 ********/
/* unsigned int i=0;
asm("nop");
while(i<i1)
i++;
*/
/******** Section 2 ********/
// for(;i1>0;i1--)asm("nop");

/******** Section 3 ********/
// unsigned int i;
// for(;i<i1;i++)asm("n