打印

TI官网epwm例程中有不明白

[复制链接]
3016|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sing146|  楼主 | 2015-6-16 22:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Uint32  EPwm1TimerIntCount;
Uint32  EPwm2TimerIntCount;
Uint32  EPwm3TimerIntCount;
Uint16  EPwm1_DB_Direction;
Uint16  EPwm2_DB_Direction;
Uint16  EPwm3_DB_Direction;//这些是自己定义的变量

interrupt void epwm1_isr(void)
{
   if(EPwm1_DB_Direction == DB_UP)//
   {
       if(EPwm1Regs.DBFED < EPWM1_MAX_DB)//下降沿计数器<1024没有溢出
       {
          EPwm1Regs.DBFED++;
          EPwm1Regs.DBRED++;
       }
       else
       {
          EPwm1_DB_Direction = DB_DOWN;
          EPwm1Regs.DBFED--;
          EPwm1Regs.DBRED--;
       }
   }
   else//若还不是
   {
       if(EPwm1Regs.DBFED == EPWM1_MIN_DB)
       {
          EPwm1_DB_Direction = DB_UP;
          EPwm1Regs.DBFED++;
          EPwm1Regs.DBRED++;
       }
       else
       {
          EPwm1Regs.DBFED--;
          EPwm1Regs.DBRED--;
       }
   }
   EPwm1TimerIntCount++;

   // Clear INT flag for this timer
   EPwm1Regs.ETCLR.bit.INT = 1;

   // Acknowledge this interrupt to receive more interrupts from group 3
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;

}

问题是满足什么条件的时候进入这个中断,这个中断作用是什么

相关帖子

沙发
jjahg123| | 2015-6-17 18:10 | 只看该作者
在initpievecttable()下面修改了中断服务地址,从这里进入中断,好像是这样.这里的PieCtrlRegs.PIEACK.all = PIEACK_GROUP3 这里的GROUP3是多少?和GROUP1有什么区别啊?

使用特权

评论回复
板凳
baimiaocun2015| | 2015-6-17 19:47 | 只看该作者
这个中断的我也没遇到过的。。

使用特权

评论回复
地板
dontium| | 2015-6-22 16:39 | 只看该作者
楼主使用的是什么型号的芯片?

使用特权

评论回复
5
12345rvn| | 2015-9-23 17:33 | 只看该作者
// Interrupt where we will change the deadband
   EPwm3Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;       // Select INT on Zero event
   EPwm3Regs.ETSEL.bit.INTEN = 1;                  // Enable INT
   EPwm3Regs.ETPS.bit.INTPRD = ET_3RD;             // Generate INT on 3rd event
这是中断进入方式,在TBCRT=ox0000;并且发生三次时进入中断。该中断的主要作用就是确定程序运行过程中,什么时候去修改死去时间。

使用特权

评论回复
6
vivilzb1985| | 2015-9-24 21:14 | 只看该作者
这个跟定时器相关系的吧,,看下定时器的初始化部分的。

使用特权

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

本版积分规则

5

主题

16

帖子

0

粉丝