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/TMS320F28377S:生成三相50Hz 正弦波

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/607117/ccs-tms320f28377s-generating-3-phase-50-hz-sin-waves

器件型号:TMS320F28377S

工具/软件:Code Composer Studio

你(们)好

我正在使用 Tms320f28377,并希望生成实时三相50 Hz 正弦波,以便在代码中使用它们。 (我使用的是 CCS7)

非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于您使用的是带有 TMU 的器件,因此最快和最高效的内存方法就是在代码中调用 sin (),并确保正在使用 TMU。 您需要从中断进行调用、以确保时序准确。

    //定义
    #define FS 50//正弦频率,单位为 Hz
    #define Fisr. 50000//中断频率,以 Hz 为单位
    #define TWOPI 2 * 3.141592653589323846
    #define THETA_INC TWOPI * FS/Fisr
    #define PHASE2 TWOPI/3.
    define Phase3 2 * TWOPI /3

    //变量
    浮点角= 0.0f;
    float sine_output1;
    float sine_output2;
    float sine_output3;

    更改"Fisr"编号以匹配 ISR 速率。 然后、在 ISR 代码中添加如下内容:

    sine_output1 = sin (角度);
    sine_output2 = sin (角度+ PHASE2);
    sine_output3 = sin (角度+ Phase3);
    角度+= THETA_INC;
    角度=(角度> TWOPI)? 0.0f:角度;

    请确保在项目属性的"C2000编译器->处理器选项"下启用了 TMU。 此外,在"C2000 Compiler -> Optimization (C2000编译器->优化)"下将浮点模式设置为"relaxed",以确保对 sin ()的调用使用 TMU。 我没有对此进行过广泛测试、但它似乎可以正常工作。

    此致、

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