AVR精确定时的编程实验
          
            时间:11-06 09:47 阅读:1529次
*温馨提示:点击图片可以放大观看高清大图
                
         
        
		  
               简介:下面是我为大家准备的一份编程实验的具体操作实验。
               
                        
          
            AVR精确定时的编程实验
#include
/*====================================== 
微秒级精确延时函数,晶振8M: 
Delay = 0.125 *((tt*4-1)+9)微秒 
其中9包括了调用方的r16赋值 1t 
rcall 3t nop 1t ret 4t 
brne指令在当判断条件不成立时是单周期 
最后一次判断只有1个周期,补一个nop 
// 1t
简化计算 = 0.5tt + 1 (us) // 1t
// 2t/1t
======================================*/ // 1t
// 4t
void shortdelay(unsigned char tt) 
{ 
asm("_L2: subi R16,1"); //延时10us
asm(" nop") 
asm(" brne _L2"); 
// 25us
asm(" nop"); 
asm(" ret"); 
} 
void main() 
AVR精确定时的编程实验 
{ 
shortdelay( 18 ); 
while(1) 
{ 
shortdelay( 48 ); 
} 
}