?? mydelay._c
字號:
#include "mydelay.h"
void delay0ms5us(void)
{
/*精確延時0ms 5us ,晶振8MHz*/
/*us級精確延時 766us/晶振以內 延時=1+n*3 */
// CLI;//屏蔽中斷嗎?
asm("LDI R18,10");//1t ,寄存器R15~R30
asm("CLZ");//1t
asm("LOOP1:DEC R18");//1t
asm("BRNE LOOP1");//1t或2t//標志位Z是0就轉移
asm("NOP");//1t
asm("NOP");//1t
// SEI;
/*us級精確延時 24543us以內,用nop補足了余數*/
//===精確延時 4.125us,晶振8MHz ===//
//===調用函數及返回花費0.875us==//
}
void delay0ms15us(void)
{
/*精確延時0ms 15us ,晶振8MHz*/
/*us級精確延時 766us/晶振以內 延時=1+n*3 */
// CLI;//屏蔽中斷嗎?
asm("LDI R18,37");//1t ,寄存器R15~R30
asm("CLZ");//1t
asm("LOOP111:DEC R18");//1t
asm("BRNE LOOP111");//1t或2t//標志位Z是0就轉移
asm("NOP");//1t
// SEI;
/*us級精確延時 24543us以內,用nop補足了余數*/
//===精確延時 14.125us,晶振8MHz ===//
//===調用函數及返回花費0.875us==//
}
void delay0ms60us(void)
{
/*精確延時0ms 60us ,晶振8MHz*/
/*us級精確延時 766us/晶振以內 延時=1+n*3 */
// CLI;//屏蔽中斷嗎?
asm("LDI R18,157");//1t ,寄存器R15~R30
asm("CLZ");//1t
asm("LOOP11:DEC R18");//1t
asm("BRNE LOOP11");//1t或2t//標志位Z是0就轉移
asm("NOP");//1t
// SEI;
/*us級精確延時 24543us以內,用nop補足了余數*/
//===精確延時 59.125us,晶振8MHz ===//
//===調用函數及返回花費0.875us==//
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -