在路上。 发表于 2014-9-1 11:12:26

关于SysTick问题。

 网友用系统滴答定时器写的ms级或者us级的延时程序
     在while循环的判断条件中,似乎都使用了这个  (temp&0x01)&&(!(temp&(1VAL = 0x00;               // 当前值清零
        SysTick->CTRL = 0x001;               // 使能SysTick,选择HCLK 8 分频,即72/8=9MHZ
        do
        {
                temp = SysTick->CTRL;       // 读取CLRT寄存器的值,其16位为计数完成标志位COUNTFLAG,读取完毕自动清零
        }
        while((temp&0x01)&&(!(temp&(1VAL = 0x00;               // 当前值清零
}
 

          我觉得只使用!(temp&(1

霹雳之火 发表于 2014-9-2 07:32:15

RE:关于SysTick问题。

temp&0x01用来判断systick是否还处于开启状态,防止systick被意外关闭导致死循环

在路上。 发表于 2014-9-2 09:17:08

回复:关于SysTick问题。

回复第 2 楼 于2014-09-02 07:32:15发表:
temp&0x01用来判断systick是否还处于开启状态,防止systick被意外关闭导致死循环
 
哦,哦,哦,了解了,非常感谢........:D
 
页: [1]
查看完整版本: 关于SysTick问题。