This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/tms320f2.8379万d:TMS320F2.8379万D中的ISR_SETTINGS

Guru**** 2558250 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/632264/ccs-tms320f28379d-isr_settings-in-tms320f28379d

部件号:TMS320F2.8379万D

工具/软件:Code Composer Studio

你好

我正在为直流-直流转换器应用工作

现在,我正在为控制器进行编程,以便为转换器切换提供20Khz PWM。

这里我有一些关于ePWM的示例...但是我需要为我的应用程序设置ISR-(中断服务例程)。

如何将ISR设置为20Khz...

请你帮我………………………………

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    您需要使用ePWM的事件触发子模块。 具体而言,请查看ETSEL[INTSEL]和ETSEL[inten]位。 您可以在TRM中找到详细信息(链接如下)。

    此致,

    克里斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你Kris

    我能得到一些带说明的示例代码

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉耽误你的时间
    谢谢你
    您好,Kris
    我不使用事件触发,我生成SING_PWM (PWM相对于正弦波)
    但我需要知道我的ISR代码在此应用程序中运行的时间。
    我的程序的分辨率是多少?
    这是我的ISR:
    __interrupt void epwm1_isr (void)

    a=sin (PI * 0.02 * i);
    GpioDataRegs.GPBDAT.bit.GPIO52 = 1;
    如果(A>=0)

    EPwm1Regs.CMPA.bit.CMPA =b[i];
    EPwm1Regs.CMPB.bit.CMPB =b[i];
    EPwm2Regs.CMPA.bit.CMPA =b[i];
    EPwm2Regs.CMPB.bit.CMPB =b[i];
    EPwm3Regs.CMPA.bit.CMPA =b[i];
    EPwm3Regs.CMPB.bit.CMPB =b[i];
    EPwm4Regs.CMPA.bit.CMPA =b[i];
    EPwm4Regs.CMPB.bit.CMPB =b[i];
    EPwm5Regs.CMPA.bit.CMPA =b[i];
    EPwm5Regs.CMPB.bit.CMPB =b[i];
    EPwm6Regs.CMPA.bit.CMPA =b[i];
    EPwm6Regs.CMPB.bit.CMPB =b[i];
    }
    否则

    EPwm1Regs.CMPA.bit.CMPA =b[i];
    EPwm1Regs.CMPB.bit.CMPB =b[i];
    EPwm2Regs.CMPA.bit.CMPA =b[i];
    EPwm2Regs.CMPB.bit.CMPB =b[i];
    EPwm3Regs.CMPA.bit.CMPA =b[i];
    EPwm3Regs.CMPB.bit.CMPB =b[i];
    EPwm4Regs.CMPA.bit.CMPA =b[i];
    EPwm4Regs.CMPB.bit.CMPB =b[i];
    EPwm5Regs.CMPA.bit.CMPA =b[i];
    EPwm5Regs.CMPB.bit.CMPB =b[i];
    EPwm6Regs.CMPA.bit.CMPA =b[i];
    EPwm6Regs.CMPB.bit.CMPB =b[i];
    }
    GpioDataRegs.GPBDAT.bit.GPIO52 = 0;
    I++;
    如果(i=401)

    i=0;
    }
    }
    通过使用I/O:GPIO52,我想测量时间...这意味着...当我的ISR_启动时,它将打开,当它退出循环时,它将返回到关闭状态...
    意味着它将产生脉冲....脉冲宽度是我的时间..