STM32
直播中

张慧玲

7年用户 186经验值
私信 关注
[问答]

作为时间基数不是应该等于频率倒数吗?

void delay_init(u8 SYSCLK)
{
   Systick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟  HCLK/8
  fac_us=SYSCLK/8;         
fac_ms=(u16)fac_us*1000;
}
请问上面的
fac_us=SYSCLK/8;  为什么不是fac_us=8/SYSCLK 作为时间基数不是应该等于频率倒数吗(虽然我知道不对,就是很糊涂)

回帖(1)

叶亮

2020-6-12 16:41:39
void delay_init(u8 SYSCLK)
{
SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟 HCLK/8
fac_us=SYSCLK/8;//计时基数 systick主频 HCLK/8=72/8=9MHZ,每次计数1/9us,所以计数为9时正好1us
fac_ms=(u16)fac_us*1000; //计时基数 1us*1000=1ms
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分