| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #ifndef _delay_h
- #define _delay_h
- /* 外部调用:
- delay_init(72); //系统主频, 单位为MHZ, 仅对 SYSTICK_DELAY 有效
- delay_ms(1000);
- */
- //#include "stm32f10x.h"
- #include "sys.h"
- #define SOFT_DELAY //纯软件延时
- //#define SYSTICK_DELAY //系统定时器延时
- //#define TIMER_DELAY //定时器延时
- #ifdef TIMER_DELAY
- #define TIMER_DELAY TIM4
- #define TIMER_DELAY_PERIOD 1000
- #define TIMER_DELAY_PRESCALER 72
- #define TIMER_DELAY_CLOCK RCC_APB1Periph_TIM4
- #define TIMER_DELAY_IRQ_HANDLER TIM4_IRQHandler
- #define TIMER_DELAY_PREEMPTION_PRIORITY 2
- #define TIMER_DELAY_SUB_PRIORITY 2
- #define TIMER_DELAY_IRQ_CHANNEL TIM4_IRQn
- static __IO u16 counter_delay_ms;
- #endif
- #if 0
- void Dly1us ( unsigned int DelayVal );
- void Dly10us ( unsigned int DelayVal );
- void Dly100us ( unsigned int DelayVal );
- extern unsigned int SystemClockFreq;
- #define DLY_PARA_COMST (SystemClockFreq/8500000) //延时参数
- #define DLY_CALL_COMST (6) //调用耗时,自定义
- #define delayUs(x) { unsigned int _dcnt; \
- _dcnt=(x*DLY_PARA_COMST-DLY_CALL_COMST); \
- while(_dcnt-- > 0) \
- { continue; }\
- }
- #define delay_us(us) delayUs(us)
- #define delay_ms(ms) delay_us(ms*1000)
- #else
- void delay_init ( u8 SYSCLK );
- void delay_us ( u32 Number );
- void delay_ms ( u16 Number );
- #endif
- #endif /* end delay.h */
|