主题:TM4C123中讨论的其他部件
在之前关于这些板上的通用计时器的讨论中, 由于我不能回答其中的任何一个问题,因为它们现在都被锁住了,我想我会再次就它们展开讨论,因为我们在这方面似乎没有成功的可能性。
我已经阅读了关于这个主题的所有可能的内容,但仍然想知道,“他们怎么会把最基本的功能搞错了?” 听听我的声音。
我们只需要做以下事情: 从80MHz系统时钟,我们需要一个32位寄存器来计数,或勾选,或者您以1MHz的速率来表达(更改)。 这意味着计时器的LSB应每经过1秒的时间增加一次。 传统的预分频器到计时器将规定预分频器的设置值为80,该预分频器将每80个系统时钟周期触发一次计数器。 然后,我们需要能够在程序的整个生命周期中读取计时器的原始值,即使它绕过了程序。 无符号整数数学很容易允许溢出,只要只溢出一次。 由于我们的延迟时间不会超过1小时12分钟(32位计数器以1MHz运行的最长时间),这在市场上的任何其他处理器中都是可行的。 就是这样。 没有比这更简单的了。 我对TivaWare,图书馆,投入其中的努力没有任何反对意见。 我不想将此对话变成关于编程风格的讨论。 虽然我不打算直接访问注册表,因为我想使用TivaWare库,但如果TivaWare本身不支持它,我很乐意这样做。 只需告诉我们如何实现这一点。 请。
我们不需要中断,当然也不想配置系统计时器来中断我们的处理器每秒100万次以增加软件中的计数器值。 这是绝对疯狂的,TI在其它线程上也提出过这种建议。 中断绝对是100 % 的问题。 通过查询当前系统时钟(或以编程方式指定它)对每个读取操作进行乘法和缩放也绝对是不可能的。 计时器应该能够配置为您选择的任何分辨率和时基。 否则,1美元或1美元左右的小延迟也不必要地产生上述计算的间接费用。 我只想在软件中读取1MHz计数器的当前值,并通过简单减法(1个时钟周期)将其与先前已知的值进行比较,并与持续时间(也是一个时钟周期)进行比较。 这种乘法和除法运算都不能得出答案。 好吗?
我希望有人能用非常简单和明确的语言向我解释,使用任何口味的TSMC处理器,使用所谓的通用计时器,是如何实现这一点的。