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.

[参考译文] MSP432E401Y:如何将时间标设置为500Hz 或1kHz?

Guru**** 2582405 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/743572/msp432e401y-how-to-set-the-timmer-to-500hz-or-1khz

器件型号:MSP432E401Y
我已将系统时钟设置为120 MHz。 通过以下代码... 

      /*将系统时钟配置为120 MHz */
   系统时钟= MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_MAIN |SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);

然后尝试  

 /*将 timer5配置为16位 PWM 模式,具有0.5 KHz 50%占空比*。 *


   MAP_TimerConfigure (TIMER5_base、(TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM));
   MAP_TimerLoadSet (TIMER5_base、TIMER_A、系统时钟/500);
   MAP_TimerMatchSet (TIMER5_base、TIMER_A、MAP_TimerLoadGet (TIMER5_base、TIMER_A)/2);

当我用示波器尝试时、频率未设置为500Hz/1kHz/<2khz…… 但占空比设置正确

它可以从2khz 正确设置频率...

您能不能向我推荐什么是错误的?...

随附完整的测试代码

谢谢你

/* DriverLib 包括*/
#include

/*标准包括*/
#include
#include

int main (空)


   uint32_t systemClock;

       /*将系统时钟配置为120 MHz */
   系统时钟= MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN |
                                             SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、
                                             120000000);
   /*启用 GPIO 端口 M 的时钟*/
   MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOM);

   MAP_GPIOPinConfigure (GPIO_PM6_T5CCP0);
   MAP_GPIOPinConfigure (GPIO_PM7_T5CCP1);
   MAP_GPIOPinTypeTimer (GPIO_PORTM_BASE、GPIO_PIN_6| GPIO_PIN_7);

   /*启用 Timer5的时钟*/
   MAP_SysCtlPeripheralEnable (SYSCTL_Periph_TIMER5);


   /*将每个计时器配置为16位 PWM 模式,占空比为2 KHz 66%
    *循环。 *
   MAP_TimerConfigure (TIMER5_base、(TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PWM | TIMER_CFG_B_PWM));
   MAP_TimerLoadSet (TIMER5_base、TIMER_Both、systemClock/2000);
   MAP_TimerMatchSet (TIMER5_base、TIMER_Both、
                      \
            MAP_TimerLoadGet (TIMER5_base、TIMER_A)/ 3);

   MAP_TimerEnable (TIMER5_base、TIMER_Both);


   MAP_TimerSynchronize (TIMER5_base、TIMER_Both);

   for (;;);

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

    我们提供的唯一计时器示例未涵盖 PWM 模式。  我建议使用 PWM 示例作为起点、  

    此致、

    Chris