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/DRV8312-C2-KIT:有关状态机函数 A0 B0 C0的问题

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/678625/ccs-drv8312-c2-kit-question-about-the-state-machine-function-a0-b0-c0

器件型号:DRV8312-C2-KIT

工具/软件:Code Composer Studio

大家好、我使用 的是 DRV8312-C2-KIT、我使用的  是 BLDC_seded 演示程序。
我无法 很好地理解状态机函数 A0 B0 C0。
请举手~
谢谢。
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// FUNCTION PROTOTYPES
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// State Machine function prototypes
//------------------------------------
// Alpha states
voidA0(void);  //state A0
voidB0(void);  //state B0
voidC0(void);  //state C0
// A branch states
voidA1(void);  //state A1
voidA2(void);  //state A2
voidA3(void);  //state A3
voidA4(void);  //state A4
// B branch states
voidB1(void);  //state B1
voidB2(void);  //state B2
voidB3(void);  //state B3
voidB4(void);  //state B4
// C branch states
voidC1(void);  //state C1
voidC2(void);  //state C2
voidC3(void);  //state C3
voidC4(void);  //state C4
// Variable declarations
void(*Alpha_State_Ptr)(void);  // Base States pointer
void(*A_Task_Ptr)(void);       // State pointer A branch
void(*B_Task_Ptr)(void);       // State pointer B branch
void(*C_Task_Ptr)(void);       // State pointer C branch
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以在项目中找到初始化代码、如下所示。

    //任务状态机初始化
    alpha_State_ptr =&A0;
    A_Task_ptr =&a1;
    B_Task_ptr =&b1;
    C_Task_ptr =&c1;
    执行的步骤如下所示、
    步骤1. 将首先调用 A0()函数以在后台循环中执行,并在 A0()完成后将 Alpha_State_PTR 设置为 B0()。
    步骤2. B0()函数将被第二次调用以在后台循环中执行,并在 B0()完成后将 Alpha_State_PTR 设置为 C0()。
    步骤3. C0 ()函数将被第三个调用以在后台循环中执行、并在 C0 ()完成后将 Alpha_State_PTR 设置为 A0 ()、将重复步骤1。

    在 A0/B0/C0中、使用相同的状态机来执行 A1/A2/A3...、B1/B2/B3...、C1/C2/C3...、但需要检查 CPU 计时器以在1ms、50ms 等固定计时器中执行这些功能。