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.
1.用MSPM0L1306 μ A-Q1 (__LW_AT__VSSOP 封装28封装)做了一个板子,现在可以开机和运行LED闪烁程序。
2.正在debug PWM out的程序,用PA14(TIMG1、C0)输出,但是始终没有在示波器上看到PWM波,查过示波器设置没有问题。
3.下面是PWM的初始化程序,麻烦查一下,看看是哪里的问题,谢谢!
#define GPIO_PWM_PORT (GPIOA)
#define GPIO_RGB_PWMOUTT_PIN (DL_GPIO_PIN_14)
#define GPIO_IOMUX_RGB_PWMOUTT (IOMUX_PINCM15)
#define GPIO_IOMUX_FUNC_PWMOUTT_PWM (IOMUX_PINCM15_PF_TIMG1_CCP0)
静态 const DL_TimerG_ClockConfig gLIGHTSENSOR_pwm_outt_INSTClockConfig ={
.clockSel = DL_TIMER_CLOCK_LFCLK
divideRatio = DL_TIMER_Cock_Divid_1、
.prescale = 0、
};
静态常量 DL_TimerG_PWMConfig gLIGHTSENSOR_PWM_OUTT_INSTConfig ={
.period = RGB_LED_PERIOD、/*可见光的64Hz PWM 信号*/
.pwmMode = DL_TIMER_PWM_MODE_EDGE_ALIGN
.startTimer = false、
};
void PWMout1_init (void)
{
DL_GPIO_initDigitalOutput (GPIO_IOMUX_RGB_PWMOUTT);
DL_GPIO_clearPins (GPIO_PWM_PORT、GPIO_RGB_PWMOUTT_PIN);
DL_GPIO_enableOutput (GPIO_PWM_PORT、GPIO_RGB_PWMOUTT_PIN);
DL_GPIO_initPeripheralOutputFunction (GPIO_IOMUX_RGB_PWMOUTT、GPIO_IOMUX_FUNC_PWMOUTT_PWM);
//================================
DL_TimerG_setClockConfig (LIGHTSENSOR_PWM_OUT_INST、
(DL_TimerG_ClockConfig *)&gLIGHTSENSOR_PWM_OUTT_INSTClockConfig);
DL_TimerG_initPWMMode (LIGHTSENSOR_PWM_OUT_INST、
(DL_TimerG_PWMConfig *)&gLIGHTSENSOR_PWM_OUTT_INSTConfig);
/*配置50%占空比*/
DL_TimerG_setCaptureCompareValue (
lIGHTSENSOR_PWM_OUT_INST、PWM_OUTT_PERIOD / 2、DL_TIMER_CC_1_INDEX);
DL_TimerG_clearInterruptStatus (
lIGHTSENSOR_PWM_OUT_INST、DL_TIMER_INTERRUPT_ZERO _EVENT);
DL_TimerG_enableInterrupt (
lIGHTSENSOR_PWM_OUT_INST、DL_TIMER_INTERRUPT_ZERO _EVENT);
DL_TimerG_enableClock (LIGHTSENSOR_PWM_OUT_INST);
DL_TimerG_setCCPDirection (LIGHTSENSOR_PWM_OUT_INST、DL_TIMER_CC1_OUTPUT);
DL_TimerG_startCounter (LIGHTSENSOR_PWM_OUT_INST);
}
LIGHTSENSOR_PWM_OUT_INST 定义是 TIMG1
Shine、您好!
如果您使用 PWM 通道0、请检查 DL_TIMER_CC_1_INDEX 和 DL_TIMER_CC1_OUTPUT 是否相对于通道0而不是通道1。 您可以从 TI.com 下载最新版本的 M0 SDK、您可以使用 SDK 中的 PWM 示例代码来测试 PWM 功能。 可从 TI.com 下载最新的 TI IDE (CCS)和 M0 SDK。
此致、
K·扬茨
我现在用的就是前几天才从TI官网下载的M0 SDK软件包,用的是KEIL编译器。
我把DL TIMER_CC_1_INDEX 和 DL_TIMER_CC1_OUTPUT 都改为 DL_TIMER_CC_0_INDEX 和 DL_TIMER_CC0_OUTPUT ,但是还是没有波形出来。
我补上下面的定义,麻烦看看是否有问题?
#define LIGHTSENSOR_PWM_OUT_INST (__LW_AT__TIMG1)
#define LIGHTSENSOR_PWM_OUT_INST_IRQHandler TIMG1_IRQHandler
#define LIGHTSENSOR_PWM_OUT_INST_INT_IRQN (TIMG1_INT_IRQn)
另外,我看了贵司的PWM例子,没看出PWM初始化代码在哪里,我看的是timx timer_mode_pwm_center_stop
但是这个文件的初始化代码实在过于简单,只看到有
SYSCFG_DL_init ();
DL_TimerG_startCounter (PWM_0_INST);
而且我看了TI MSP_DL_CONFIG。 C文件的SYSCFG _DL_init (函数,这个函数并没有任何关于PWM初始化的代码,或者请帮忙发个完整的PWM初始化代码,谢谢。)
另外,请问MSPM0L 1306的PWM输出是可以直接连接到某个IO口的吧,也就是说初始化之后,在TIMER计数溢出的时候,不需要跳转到中断处理程序去控制GPIO口反转的吧?谢谢。
我的意思是,我没有写一个中断处理程序去控制PA14口反转的。
不需要,PWM计数引发的中断不会影响PWM的正常输出
请问您是否使用过我们TI的Sysconfig μ V、Keil中也是可以集成Sysconfig的,使用Sysconfig就可以图形化配置TIMER μ-PWM,不用您手动去写初始化代码。SYSCFG_DL_init ()这个函数中应该是要包含一个pwm初始化函数的。
我推荐您从官网下载安装Sysconfig后,根据我们的design 流量导向装置 将Sysconfig导入进Keil,然后从我们的SDK中导入一个PWM的示例程
序: timx_timer_mode_pwm_edge_sleep,然后去验证下PWM功能。
我的电脑是32位系统,安装不了SYSCONFIG,但是我刚刚调试好PWM了。
我把 TIMERG_R θ RESET和 TIMERG_R θ ENABLEPOWER这2句加上去,就是打开TIMERG的电源就好了,谢谢。
是的 在PWM初始化中 这两个函数是需要的。