主题中讨论的其他器件:TM4C123
我将使用配置时钟
G_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
在这里 、g_ui32SysClock 给出了12Mega 的正确值
但我想确认时钟是否准确
是否有计算时钟的方法
如果是、请提供帮助
提前感谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我将使用配置时钟
G_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
在这里 、g_ui32SysClock 给出了12Mega 的正确值
但我想确认时钟是否准确
是否有计算时钟的方法
如果是、请提供帮助
提前感谢
您好、Tayyab、
对于 TM4C129器件、请使用 SysctlClockFreqSet()返回的值来获得处理器时钟速率、而不是调用 SysCtlClockGet ()。 SysCtlClockGet ()只能在 TM4C123器件上调用。 TivaWare 库中提到了这一点。
26.2.2.3 SysCtlClockGet
获取处理器时钟速率。
原型:
uint32_t
SysCtlClockGet (空)
描述:
此函数决定处理器时钟的时钟速率、也是时钟速率
外设模块(PWM 除外、PWM 具有其自己的时钟分频器;其他
外设可能具有不同的时钟、有关详细信息、请参阅器件数据表)。
注:
如果 SysCtlClockSet()没有被调用来配置、这将无法返回准确的结果
器件计时、或者器件直接由晶体(或时钟源)计时
这不是支持的晶体频率之一。 在后一种情况下、此函数应为
进行了修改、以直接返回正确的系统时钟速率。
只能在 TM4C123器件上调用此函数。 对于 TM4C129器件、返回值
来自 SysCtlClockFreqSet()指示系统时钟频率。
[引用用户="Tayyab Tahir"]
在这里 、g_ui32SysClock 给出了12Mega 的正确值
但我想确认时钟是否准确。 [/报价]
根据您(之前)的代码条目:"...| SYSCTL_CFG_VCO_480)、120000000);" SysClock 不应该是120MHz -不应该是12MHz?
您还会寻求确认系统时钟的准确性。 然而-您并未指定"如何测量和确定该精度?" 这是(一些)重要的-是不是吗?
考虑以下因素:
虽然您的帖子"不清楚"您寻求哪种这两种方法-我的意思是您"期望"MCU (单独)"确认 SysClock 的准确性"-当然、哪一种方法减去任何"片上"频率标准-它无法实现!
如果您希望设计一款支持"合理精确的 SysClock 测量"的产品、 则必须在 MCU 的 PCB 上(适当)部署足够精确的外部稳定(电压、老化、温度)频率源。
请注意、"每个人"对 "准确"的理解和接受可能与您自己的理解和接受不完全重叠。 因此(某些)规格是必需的-这不是吗?
感谢您的回答
我很抱歉,它是120米,而不是12米
我还要以这种方式来表示它
我想在示波器或逻辑分析仪上对系统时钟进行采样,以检查它是否是我在 SysClockFreqSet (… ,120000000)。
如果时钟可以在 GPIO 上采样、则最好(如果可能)
我的一位朋友说、可能是 PWM、可能有助于我浏览 Tiva ware 文档、以搜索任何相关内容
您能否提供样片代码来实现这一目的
或者、让我指明方向、以便我可以这样做
谢谢