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.

[参考译文] TM4C1290NCPDT:用于切换 CCP0输出引脚的全宽定时器_CFG_PERIODICRACRACLE

Guru**** 2482105 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/710129/tm4c1290ncpdt-full-width-timer_cfg_periodic-used-to-toggle-a-ccp0-output-pin

器件型号:TM4C1290NCPDT

请参阅原始主题: e2e.ti.com/.../471743

 尽管原始线程已关闭、但此问题在 TivaWare_C_Series-2.1.4.178中仍未得到解决。

我想在周期模式中使用一个全宽度32位定时器来切换 CCP0管脚:
TimerConfigure (TIMER2_base、TIMER_CFG_PERIODICRACASE | TIMER_CFG_A_ACT_TOGGLE);

Timer.h:
#define TIMER_CFG_PERIODICRACY_0x00000022 //全宽度周期计时器
#define TIMER_CFG_SPLIT_PAIR 0x04000000 //两个半宽定时器
#define TIMER_CFG_A_ACT_TOGGLE 0x00020000 // Timer A 比较操作切换。

在 TimerConfigure()中,如果 选择了 TIMER_CFG_PERIODIY,则以下断言将不允许设置任何其他配置位。 它在没有断言的情况下工作正常。
assert()
(ui32Config = TIMER_CFG_ONE_SHOT)||
(ui32Config = TIMER_CFG_ONE_SHOT_UP)||
(ui32Config = TIMER_CFG_PERIODICRARic)||
(ui32Config = TIMER_CFG_PERIODICY_UP)||
(ui32Config = TIMER_CFG_RTC)||
((ui32Config & 0x000000)=TIMER_CFG_SPLIT_PAIR));

这看起来不正确。 但是如果正确的话:应该如何使用 TimerConfigure()来获得 周期模式中的全宽度32位定时器来切换 CCP0引脚?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉、看起来好像我们把球落在了这个上面。 为了在全宽模式下使用计时器时正确允许超时引脚功能、我认为 TIMER.c (版本2.1.4.178)的第354-359行应从

    assert ((ui32Config = TIMER_CFG_ONE_SHOT)||
    (ui32Config = TIMER_CFG_ONE_SHOT_UP)||
    (ui32Config = TIMER_CFG_PERIODICRARic)||
    (ui32Config = TIMER_CFG_PERIODICY_UP)||
    (ui32Config = TIMER_CFG_RTC)||
    ((ui32Config & 0x000000)=TIMER_CFG_SPLIT_PAIR));
    

    至:

    Assert ((((ui32Config & 0xFFFF)=TIMER_CFG_ONE_SHOT)||
    ((ui32Config & 0xFFFF)=TIMER_CFG_ONE_SHOT_UP)||
    (((ui32Config & 0xFFFF)=TIMER_CFG_PERIODICRATE)||
    ((ui32Config & 0xFFFF)=TIMER_CFG_PERIODICY_UP)||
    ((ui32Config & 0xFFFF)=TIMER_CFG_RTC)||
    ((ui32Config & 0x000000)=TIMER_CFG_SPLIT_PAIR));
    

    我正在与团队合作、尝试发布 TivaWare 补丁。 我现在将其记录到我们的错误跟踪系统中。