打印
[技术问答]

新唐pwmcapture中断什么情况?

[复制链接]
851|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangmenghao|  楼主 | 2018-11-5 10:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pwma通道2开中断PWM_EnableCaptureInt(PWM_GROUP, PWM_IN_CH, PWM_CAPTURE_INT_FALLING_LATCH),每次进入中断后使用函数PWM_GetCaptureIntFlag(PWM_GROUP, PWM_IN_CH)获取到的值都是3,那我还怎么判断这次中断是上升沿中断还是下降沿中断?
沙发
jasontu| | 2018-11-5 13:47 | 只看该作者
你設定的條件PWM_CAPTURE_INT_FALLING_LATCH,中斷的條件也是有FALLING,
你可以設RISE及FALL,RISE及FALL有各自FLAG可以判斷及清除

使用特权

评论回复
评论
wangmenghao 2018-11-5 15:34 回复TA
每次进入中断都是RISE和FALL同时发生,PWM_GetCaptureIntFlag返回的值0 No capture interrupt,1 Rising edge latch interrupt,2 Falling edge latch interrupt,3 Rising and falling latch interrupt,我设定的是FALLING,为什么每次中断读取到的都是3 Rising and Falling?单独的Falling事件根本就没发生。 
板凳
zhuotuzi| | 2018-11-5 20:22 | 只看该作者
你看看手册先了解这个PWM中断是啥意思,你可以设定的,你是设定上升沿触发还是下降沿触发,还是双边触发。
如果是双边,那么中断后,你检测当前是高低电平不就知道刚才发生了哪种跳变吗

使用特权

评论回复
地板
zhuotuzi| | 2018-11-5 20:23 | 只看该作者
官方的例子可以看看,很有帮助。

使用特权

评论回复
5
幸福小强| | 2018-11-5 22:24 | 只看该作者
同时发生那是双边沿触发。肯定是触发后就是什么状态了

使用特权

评论回复
6
捉虫天师| | 2018-11-5 22:50 | 只看该作者
/************************************************************************************************************
*   PWM interrupt subroutine
************************************************************************************************************/
void PWM_ISR (void) interrupt 13
{
    clr_PWMF;               // clear PWM interrupt flag
    P12 = ~P12;                                                        // GPIO1 show PWM INT
}

/************************************************************************************************************
*    Main function
************************************************************************************************************/
void main(void)
{
    Set_All_GPIO_Quasi_Mode;
/**********************************************************************
        PWM frequency = Fpwm/((PWMPH,PWMPL) + 1) <Fpwm = Fsys/PWM_CLOCK_DIV>
                                                                = (22.1184MHz/8)/(0x3FF + 1)
                                                                = 2.7KHz
***********************************************************************/
                PWM2_P10_OUTPUT_ENABLE;
                PWM_INT_PWM2;       
                PWM_FALLING_INT;                                        //Setting Interrupt happen when PWM0 falling signal
       
                PWM_CLOCK_DIV_8;
                PWMPH = 0x03;                                                        //Setting PWM period
                PWMPL = 0xFF;
                PWM2H = 0x01;                                                        //PWM0 high duty = 1/2 PWM period
                PWM2L = 0xFF;       

                set_EPWM;                                                                        //Enable PWM interrupt
                set_EA;                                                                       
    set_LOAD;
    set_PWMRUN;
                while(1);
}

使用特权

评论回复
7
捉虫天师| | 2018-11-5 22:50 | 只看该作者
比如这个,触发的下降沿中断后,你可以读这个端口状态,肯定是低电平。

使用特权

评论回复
8
小明的同学| | 2018-11-6 22:57 | 只看该作者
PWM还看而已捕获。

使用特权

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

本版积分规则

2

主题

6

帖子

0

粉丝