主题中讨论的其他器件:EK-TM4C1294XL
大家好!
TM4c 的驱动程序库具有定时器示例。 驱动程序库的 GPTM 模块新手来说太难理解了。 任何身体可以帮助我 遵循吗?
在 PM 端口 (PM0至 PM6)上设置至少16位计数器?
2.启用计数器
2.读取 每秒计数的值 。
3.重置计数器
谢谢你
Abhay Shekhar
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.
大家好!
TM4c 的驱动程序库具有定时器示例。 驱动程序库的 GPTM 模块新手来说太难理解了。 任何身体可以帮助我 遵循吗?
在 PM 端口 (PM0至 PM6)上设置至少16位计数器?
2.启用计数器
2.读取 每秒计数的值 。
3.重置计数器
谢谢你
Abhay Shekhar
您好!
在 PM 端口 (PM0至 PM6)上设置至少16位计数器?
[/报价]请参阅数据表。 如果您想使用 PM0-PM6、那么您需要使用计时器模块 timer2_A、timer2_B、timer3_A、timer3_B、timer4_A、 timer4_B 和 timer5_A
在示例 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\timer_edge_capture 中、它将 PL4和 PL5用于 Timer0_A 和 Timer0_B 您只需引用示例中的代码并针对 PM0和 PM1进行更改。 我强烈建议您只进行一次捕获、例如仅使用 timer2_A 的 PM0 在您尝试同时进行7个输入捕获之前、只需先获得一个输入捕获即可工作。 我将会大大降低调试的复杂性。
[/quote][/quote][/quote]2.启用计数器
[/报价]要启用计数器,您主要需要调用 TimerEnable () API。 请参考此示例。 我认为这个示例非常简单、并解释了一切。 例如、如果要启用 PM0和 PM1的 Timer2_A 和 Timer2_B、则只需调用以下命令即可启用计数器:
TimerEnable (TIMER2_BASE、timer_both);
[/quote][/quote]2.读取 每秒计数的值 。
[/报价]有关所有 API 和示例代码、请参阅外设驱动程序用户指南 www.ti.com/.../spmu298。 您只需调用 TimerValueGet ()来读取计数。
[/quote]3.重置计数器
[/报价]计数器可以是递增计数还是递减计数、具体取决于您的配置。 在本例中、为递增计数器设置了两个计时器。 请参阅以下代码。 这意味着计数器从0开始、一旦计数器达到匹配值、计数器就会自动复位为0。 换句话说、计数器的复位由硬件本身来完成。 匹配值由您配置、决定在产生中断前您希望计数多少边沿。 同样、请参考数据表和示例。
//
//初始化计时器 A 和 B 以作为周期性向上计数边沿捕捉运行
//计时器。 这会将32位计时器拆分为两个16位计时器。
//
MAP_TimerConfigure (TIMER0_BASE、(TIMER_CFG_SPLIT_PAIR |)
Timer_CFG_A_periodic |
Timer_CFG_A_CAP_TIME_UP |
Timer_CFG_B_PERIOD |
Timer_CFG_B_CAP_TIME_UP);