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.

[参考译文] MSP430FR2522:没有用于处理 GPIO 轮询的计时器

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/754224/msp430fr2522-no-available-timer-to-handle-gpio-polling

器件型号:MSP430FR2522

你(们)好

我们使用 MSP430来处理电容式触控键盘。 MSP 充当 i2c 从器件(i2c 寄存器)、软件由 CapTIvate Design Studio 生成。

除了处理触摸板之外、MSP 还需要每300ms 轮询一次 GPIO 以处理篡改开关。 为此、我们需要设置一个计时器、但由于我们的 MSP 只有2个计时器(A0和 A1)、并且 i2c 从器件实现使用这两个计时器、我的问题是您是否有其他选项来处理轮询?

篡改解决方案不允许我们在 GPIO 上设置中断并在不轮询的情况下对其进行处理。

(默认) i2c 实现在  FunctionTimer.h 中同时使用 eTimerDelayedFunction_A 和 eTimerDelayedFunction_B

#define TIMER_CCR0_VECTOR (Timer1_A0_VECTOR)
#define TIMER_CCR1_Vector (Timer1_A1_Vector)

此致、

Martin

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

    这两个都是指相同的计时器(TA1)。 不幸的命名惯例是历史性的。

    FR2522还有一个 TA0。 [参考数据表(SLASEE4)表3-1。] 相应的向量名称将是 TIMER0_A0_VECTOR 和 TIMER0_A1_VECTOR。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用 TIMER_A0_BASE 和 TIMER0_A0_VECTOR 配置了 TA0、看起来工作正常。

    谢谢!