新手上路
- 积分
- 32
- 金钱
- 32
- 注册时间
- 2023-1-22
- 在线时间
- 4 小时
|
1金钱
本帖最后由 songyang 于 2023-3-5 15:25 编辑
/***************************** 疑问1 **********************************/
我调用了SysTick_Config(SystemCoreClock / 1000) 函数,在没分频的情况下 ,72000次产生一次中断,我在中断函数里SysTick_Handler(void) 加了个减法的倒计时,做为延迟。
void SysTick_Handler(void)
{
#if 1
if(currentSystick != 0)
{
currentSystick--;
}
#endif
}
void DelayMs(uint32_t ms)
{
currentSystick = ms;
while(currentSystick != 0){}
}
DelayMs(1000) 应该是1秒的间隔,为什么实际使用的时候是10秒?
/***************************** 疑问2 **********************************/
void DelayUS(uint32_t us)
{
uint32_t temp;
SysTick->LOAD = 72000 * us;
SysTick->VAL=0X00;
SysTick->CTRL=0X01;
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&(!(temp&(1<<16))));
SysTick->CTRL=0x00;
SysTick->VAL =0X00;
}
直接使用了 SysTick来设置的话,如果同时也开启了时钟中断,那么会影响到中断的频率么?
|
|