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.

[参考译文] MSP-EXP430F5529LP:MSP430F5529

Guru**** 2589245 points
Other Parts Discussed in Thread: TRF7970A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/656394/msp-exp430f5529lp-msp430f5529

部件号:MSP-EXP430F5529LP
主题中讨论的其他部件:TRF7970A

您好,

我想为"F5529LP_TRF7970A_All_NFC_modes"项目7970项目添加计时器,但我无法添加。

代码中有一个关于时钟的函数:

void mcu_init(void)

   WDT_A_HOLD (__MSP430_BASEADDRESS_WDT_A__);

   //设置XT1和XT2
   xt1_xt2_port_sel |= xt1_enable + xt2_enable;

   //设置Vcore以适应允许的最大系统速度
   SetVCore(3);

   //使用32.768kHz XTAL作为参考
   LFXT_Start (XT1DRIVE_0);

   // MCU频率= 25MHz
   INIT_FLL_ACCOUNT (MCLK_MS_COUNT,762);

}

我在init行之间编写了以下代码。

      TA0CCTL0 = CCIE;
      TA0CCR0 =计数号
      TA0CTL  = tassel_2 + MC_1 + TCLR;

Count_No的1ms计时器的值是多少

和intterupt矢量:

#pragma vector = TIMER0_A0_vector
__interrupt void TIMER0_A0_ISR (void)

// 1ms计时器代码...

}

感谢您的关注...

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

    您好,

    TI示例代码使将模块(如计时器)并入客户项目变得非常简单。 提供的链接( http://dev.ti.com/tirex/#/?link=Software%2FMSP430Ware%2FDevices%2FMSP430F5XX_6XX%2FMSP430F5529 % 2FPeripheral %20Examples%2FRegister%20Level )包含Timer0和Timer1示例,显示如何初始化和实现MSP430计时器模块。 查看这些示例,了解有关使用计时器模块,计时器中断向量以及如何计算特定时间间隔(即 1毫秒)。

    希望这能帮助您成功地将"计时器"功能添加到项目中!

    此致,

    Matt Calvo

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

    Matthew,您好!

    感谢您的回答,但我知道如何安排计时器中断。 我的问题是关于你的MCU_INIT函数,它改变时钟,因此我无法计算1毫秒定时器间隔的正确值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    置入TA0CCR0寄存器内的值是计时器模块时钟速度的函数。 从你提供的代码看,计时器似乎是由SMCLK提供的,我看不到任何细分,所以假设你的SMCLK是由MCU频率提供的,那么它将是25MHz。

    25MHz的周期为40ns,因此计时器每40ns "计数"一次。 为了每隔1毫秒触发一次计时器中断,计时器必须最多计数1ms/40ns,即2.5万 计数(TA0CCR0=2.5万)。 计算的值将根据所需的间隔,时钟速度和时钟的划分设置进行更改;但找到放置在TA0CCR0内的值的基本步骤与我在上面概述的相同。

    此致,

    Matt Calvo