[技术问答] 新唐pwmcapture中断什么情况?

[复制链接]
144|8
 楼主 | 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,那我还怎么判断这次中断是上升沿中断还是下降沿中断?
| 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事件根本就没发生。 
| 2018-11-5 20:22 | 显示全部楼层
你看看手册先了解这个PWM中断是啥意思,你可以设定的,你是设定上升沿触发还是下降沿触发,还是双边触发。
如果是双边,那么中断后,你检测当前是高低电平不就知道刚才发生了哪种跳变吗
| 2018-11-5 20:23 | 显示全部楼层
官方的例子可以看看,很有帮助。
| 2018-11-5 22:24 | 显示全部楼层
同时发生那是双边沿触发。肯定是触发后就是什么状态了
| 2018-11-5 22:50 | 显示全部楼层
  1. /************************************************************************************************************
  2. *   PWM interrupt subroutine
  3. ************************************************************************************************************/
  4. void PWM_ISR (void) interrupt 13
  5. {
  6.     clr_PWMF;               // clear PWM interrupt flag
  7.     P12 = ~P12;                                                        // GPIO1 show PWM INT
  8. }

  9. /************************************************************************************************************
  10. *    Main function
  11. ************************************************************************************************************/
  12. void main(void)
  13. {
  14.     Set_All_GPIO_Quasi_Mode;
  15. /**********************************************************************
  16.         PWM frequency = Fpwm/((PWMPH,PWMPL) + 1) <Fpwm = Fsys/PWM_CLOCK_DIV>
  17.                                                                 = (22.1184MHz/8)/(0x3FF + 1)
  18.                                                                 = 2.7KHz
  19. ***********************************************************************/
  20.                 PWM2_P10_OUTPUT_ENABLE;
  21.                 PWM_INT_PWM2;       
  22.                 PWM_FALLING_INT;                                        //Setting Interrupt happen when PWM0 falling signal
  23.        
  24.                 PWM_CLOCK_DIV_8;
  25.                 PWMPH = 0x03;                                                        //Setting PWM period
  26.                 PWMPL = 0xFF;
  27.                 PWM2H = 0x01;                                                        //PWM0 high duty = 1/2 PWM period
  28.                 PWM2L = 0xFF;       

  29.                 set_EPWM;                                                                        //Enable PWM interrupt
  30.                 set_EA;                                                                       
  31.     set_LOAD;
  32.     set_PWMRUN;
  33.                 while(1);
  34. }
复制代码
| 2018-11-5 22:50 | 显示全部楼层
比如这个,触发的下降沿中断后,你可以读这个端口状态,肯定是低电平。
| 2018-11-6 22:57 | 显示全部楼层
PWM还看而已捕获。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

快速回复 返回顶部 返回列表