打印
[技术问答]

m451 PWM1_CH4 捕获不了。

[复制链接]
606|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
libinskk|  楼主 | 2019-1-14 17:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
m451 PWM1_CH4 捕获不了。
进入不了这个中断,void PWM1P1_IRQHandler(void)
应该要如何处理?

        /* set PWM1 channel 4 capture configuration */
        PWM_ConfigCaptureChannel(PWM1, 4, 69, 0);

        /* Enable capture falling edge interrupt for PWM1 channel 4 */
        PWM_EnableCaptureInt(PWM1, 4, PWM_CAPTURE_INT_FALLING_LATCH);

        /* Enable PWM1 NVIC interrupt */
        NVIC_EnableIRQ(PWM1P1_IRQn);

        /* Enable Timer for PWM1 channel 2 */
        PWM_Start(PWM1, PWM_CH_4_MASK);

        /* Enable Capture Function for PWM1 channel 4 */
        PWM_EnableCapture(PWM1, PWM_CH_4_MASK);

        /* Enable falling capture reload */
        PWM1->CAPCTL |= PWM_CAPCTL_FCRLDEN4_Msk;
沙发
zhuotuzi| | 2019-1-16 17:50 | 只看该作者
void PWM_EnableCapture(PWM_T *pwm, uint32_t u32ChannelMask);
你怎么三个参数,你搞毛啊。

使用特权

评论回复
板凳
zhuotuzi| | 2019-1-16 17:50 | 只看该作者
这个函数原型只有2个参数,后面都没没看。。。反正看到第二个函数,你就错了

使用特权

评论回复
地板
libinskk|  楼主 | 2019-1-16 19:30 | 只看该作者
你看错了吧?大兄弟。

使用特权

评论回复
5
zhuotuzi| | 2019-1-16 23:53 | 只看该作者
libinskk 发表于 2019-1-16 19:30
你看错了吧?大兄弟。

我是从库函数里复制出来的,能错吗?

使用特权

评论回复
6
734774645| | 2019-1-17 10:11 | 只看该作者
7
稳稳の幸福| | 2019-1-17 23:17 | 只看该作者
上面说的很对。

使用特权

评论回复
8
稳稳の幸福| | 2019-1-17 23:17 | 只看该作者
我记得也是2个参数,你怎么3个

使用特权

评论回复
9
稳稳の幸福| | 2019-1-17 23:17 | 只看该作者
能编译通过吗

使用特权

评论回复
10
libinskk|  楼主 | 2019-1-20 17:22 | 只看该作者
zhuotuzi 发表于 2019-1-16 17:50
这个函数原型只有2个参数,后面都没没看。。。反正看到第二个函数,你就错了 ...

这里是有2个函数,1个是2个参数的,1个是3个参数的。大兄弟我编译是可以通过的。

回到问题上来吧。


/**
* [url=home.php?mod=space&uid=247401]@brief[/url] Enable capture of selected channel(s)
* @param[in] pwm The pointer of the specified PWM module
*                - PWM0 : PWM Group 0
*                - PWM1 : PWM Group 1
* @param[in] u32ChannelMask Combination of enabled channels. Each bit corresponds to a channel.
*                           Bit 0 is channel 0, bit 1 is channel 1...
* [url=home.php?mod=space&uid=266161]@return[/url] None
* [url=home.php?mod=space&uid=1543424]@Details[/url] This function is used to enable capture of selected channel(s).
*/
void PWM_EnableCapture(PWM_T *pwm, uint32_t u32ChannelMask)
{
    (pwm)->CAPINEN |= u32ChannelMask;
    (pwm)->CAPCTL |= u32ChannelMask;
}

/**
* @brief Enable capture interrupt of selected channel.
* @param[in] pwm The pointer of the specified PWM module
*                - PWM0 : PWM Group 0
*                - PWM1 : PWM Group 1
* @param[in] u32ChannelNum PWM channel number. Valid values are between 0~5
* @param[in] u32Edge Rising or falling edge to latch counter.
*              - \ref PWM_CAPTURE_INT_RISING_LATCH
*              - \ref PWM_CAPTURE_INT_FALLING_LATCH
* @return None
* @details This function is used to enable capture interrupt of selected channel.
*/
void PWM_EnableCaptureInt(PWM_T *pwm, uint32_t u32ChannelNum, uint32_t u32Edge)
{
    (pwm)->CAPIEN |= (u32Edge << u32ChannelNum);
}

使用特权

评论回复
11
xinpian101| | 2019-1-20 20:06 | 只看该作者
现在搞定了没?

使用特权

评论回复
12
xinpian101| | 2019-1-20 20:07 | 只看该作者
其他通道好使吗,还是只有这一个这么配置不行了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

67

帖子

1

粉丝