打印

【TI FAQ】+关于TM4C123GXL的时钟

[复制链接]
1470|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probug|  楼主 | 2014-10-22 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在用TI的EK-TM4C123GXL时候发现,datasheet等一切官方资料显示的都是在
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
语句后系统时钟被配置成50MHz,此时用函数SysCtlClockGet()返回的值也是50M。
但是我使用函数SysCtlDelay(SysCtlClockGet()),从理论上说应该是延时3s,但是我用示波器测下来延时了3.34s
利用延时公式反推得到的时钟为45MHz。我又试了SysCtlDelay(50000000),还是一样的情况。
请问有人知道这是什么情况造成的?是TI的疏忽吗?
我测了SYSCTL_SYSDIV_4,实际45M,不符合声明
SYSCTL_SYSDIV_5,实际是40M,符合声明
SYSCTL_SYSDIV_3,实际是60M,不符合声明

答:你可以改用ROM_SysCtlDelay()會比較準確些. 這並不是System Clock的問題.而是ROM存取可以在一個Clock完成. flash則需要好幾個Clock.所以直接使用TI存放在ROM裡面的Library, 可以避掉這個問題.
但是如果你需要精確的Delay time. 建議使用SysTick或是Timer.

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

324

帖子

10

粉丝