每个ePWM模块都有一个与PIE有联系的中断请求和2路A-D转换启动信号。事件触发子模块可以监测各种不同的事件状态,而且在发生中断和A-D转换启动前能够进行配置。逻辑预分频可以发生中断和启动A-D转换按以下方式进行:每1个事件、每2个事件或每3个事件。
事件触发子模块的主要控制寄存器见表7-8。
表7-8 事件触发子模块的主要控制寄存器
中断周期位(ETPS[INTPRD])确定产生一个中断所需要的事件数量:
●不产生中断。
●当选定的事件发生1次时产生中断。
●选定的事件发生2次时产生中断。
●选定的事件发生3次时产生中断。
哪一个事件会触发中断,由中断选择位(ETSEL[INTSEL])确定,事件可以是:
●时基计数器(TBCTR)值等于0。
●时基计数器(TBCTR)值等于周期值(TBCTR=TBPRD)。(www.daowen.com)
●当增计数时,时基计数器(TBCTR)值等于计数比较寄存器A(CMPA)值。
●当减计数时,时基计数器(TBCTR)值等于计数比较寄存器A(CMPA)值。
●当增计数时,时基计数器(TBCTR)值等于计数比较寄存器B(CMPB)值。
●当减计数时,时基计数器(TBCTR)值等于计数比较寄存器B(CMPB)值。
选定事件已经发生的次数可以从中断事件计数寄存器ETPS[INTCNT]位读出,当选定的事件发生时,ETPS[INTCNT]位域将增加,直到达到ETPS[INTPRD]。当中断被送到PIE模块后,中断事件计数器将清零,当ETPS[INTCNT]位域达到ETPS[INTPRD]时,将发生以下动作:
●如果中断已经使能(ETSEL[INTEN]=1),且中断标志位已经清除(ETFLG[INT]=0),这时将产生一个中断,中断标志将置位(ETFLG[INT]=1),事件发生计数器将清0,事件发生计数器将重新开始计数。
●如果中断未使能(ETSEL[INTEN]=0),或者中断标志未清零(ETFLG[INT]=1),事件发生计数器值达到ETPS[INTPRD]后,事件发生计数器将停止计数。
●如果中断已经使能,但是中断标志置位,计数器将使输出为高电平直到标志位为0,ETFLG[INT]=0。
对INTPRD的写操作将清除事件发生计数器(INTCNT=0),计数输出将复位。写1到ETFRC[INT]将增加INTCNT的值。当INTPRD=0时,禁用事件发生计数器,因此不会监测事件,忽略ETFRC[INT]。
当选定的事件发生1次、2次或3次时,可以产生一个中断。发生4次或以上时,将不产生中断。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。