TI中文支持网
TI专业的中文技术问题搜集分享网站

请教关于C6748PWM中断的问题

我的任务是用PWM输出信号用于D类放大,每个PWM周期进入PWM中断改变占空比。

首先我试了生成50kHz周期的PWM波,占空比可以按照预定的数值变化,但是发现进入中断执行操作后跳出中断回到主函数耗费了4000多个Clock周期。

后来将频率提高到100kHz,占空比没有变化,发现进入中断后不能回到主函数,分析可能和上面提到的4000多个周期有关。系统频率400M,这4000多个Clock周期就基本等于100kHz了。

请问有没有什么方法减小这个时间损耗?谢谢!

程序主要参考了starterware,基本框架如下:

interrupt void PWMEventIsr(void)
{

EHRPWMETIntClear(SOC_EHRPWM_0_REGS);
flagIsrCnt = 1;

}

while ( 1 )
{
if(flagIsrCnt==1)
{

data_comp = (UINT16) ( (EHRPWM_TB_CLK/PWM_FREQ*data_int)>>15 );
HWREGH(EHRPWM0_BASE + EHRPWM_CMPA) = data_comp;

flagIsrCnt = 0;
}

Ying Zhang4:

另外发现单步运行汇编程序时中断向量表的VEC_ENTRY 部分运行需要比较多的时钟周期,不知道正不正常

VEC_ENTRY .macro addr STW B0,*–B15 MVKL addr,B0 MVKH addr,B0 B B0 LDW *B15++,B0 NOP 2 NOP NOP .endm

赞(0)
未经允许不得转载:TI中文支持网 » 请教关于C6748PWM中断的问题
分享到: 更多 (0)