| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- #ifndef __DELAY_H_
- #define __DELAY_H_
- #include <stm32f10x.h>
- #if 1
- void Dly1us ( unsigned int DelayVal );
- void Dly10us ( unsigned int DelayVal );
- void Dly100us ( unsigned int DelayVal );
- extern unsigned int SystemClockFreq;
- #define DLY_PARA_US (SystemClockFreq*1.0/8500000) //延时us参数
- #define DLY_CALL_US (8) //调用us耗时,自定义应< DLY_PARA_US(譬如8.47)
- #define delayUs(x) { \
- unsigned int _dcnt = (DLY_PARA_US*x-DLY_CALL_US); \
- while(_dcnt-- > 0); \
- }
- #define delay_us(us) delayUs(us)
- #define delay_ms(ms) delayUs(ms*1000)
- //STM32F103CBT6测试结果:
- //#define DLY_CALL_US (8) //调用us耗时,自定义
- //106.4ms -> 10.6ms -> 1.06ms
- //90us-114us -> 16us-19us -> 9us
- #else
- void delay_init ( u8 SYSCLK );
- void delay_ms ( u16 nms );
- void delay_us ( u32 nus );
- void Delay ( vu32 nCount );
- #endif
- #endif
|