新手上路
- 积分
- 46
- 金钱
- 46
- 注册时间
- 2017-4-23
- 在线时间
- 15 小时
|
5金钱
volatile unsigned long TimingDelay; // 延时时间,注意定义为全局变量
void SysTick_Handler(void)
{
SysTick->VAL=0;
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}
void delay_init()
{
SysTick->CTRL |= SysTick_CLKSource_HCLK; //选择内部系统时钟源
SysTick->VAL=0;
SysTick->LOAD=70; //8M 10us 时间
SysTick->CTRL&=0xfffffffe; //关闭中断
}
void delay_us(u32 nus)
{
TimingDelay=nus;
SysTick->VAL=0;
SysTick->CTRL|=0x01 ; //开始倒数
while(TimingDelay!=0){};
SysTick->CTRL&=0xfe ; //关闭倒数
}
void delay_ms(u16 nms)
{
delay_us(nms*100);
}
|
|