微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 初学者问个系统时钟计算的问题。。。

初学者问个系统时钟计算的问题。。。

时间:10-02 整理:3721RD 点击:
  各位高手别见笑、、、


   我想问图中的 dalay延时为什么会是0.5秒。不是说重装载值=频率乘以想要定的时间吗。


                                                                                                                                                                                       
好像是单位的问题

哈?   。 他重载值那里 是  9000乘以500 吧。  不懂怎么会定时为0.5秒。还是我本身的思维就错了。

难道高手对这个白菜问题都不屑一顾。

你这是谁的代码?

网上的。这不重要吧。

这要看你systick是怎么写的,你要知道的是你的delay_ms(1),是不是真的1ms

其实你这个问题只需要看delay_ms()这个程序就行了,应该是一个基本的延时函数

systick的时钟是HCLK,也就是72M,如果要计时1毫秒,那要72*1000,你这个代码中装载的值极有可能是错误的。

SysTick->CTRL=0X01;  这句话的作用是采用外部时钟源AHB/8,接下来的计算你应该自己会推了,手册上有这些寄存器的配置详细说明,不要太相信别人的注释了,也许他自己知道,但是没有详细说明。

SysTick->CTRL=0X01系统时钟8分频即9MHZ,如果SysTick->LOAD=9000,意思是从9000往下减,减9000次到0,花了1ms的时间(因为SysTick的时钟为9MHZ,上面讲过),所以SysTick->LOAD=9000*i代表花了 i ms的时间

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top