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.

[参考译文] TMS320F28379D:C2000WARE-MOTORCONTROL-SDK Clarke 模块

Guru**** 2535150 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE, C2000WARE-MOTORCONTROL-SDK, MOTORWARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1051517/tms320f28379d-c2000ware-motorcontrol-sdk-clarke-module

器件型号:TMS320F28379D
主题中讨论的其他器件:controlSUITEC2000WAREC2000WARE-MOTORCONTROL-SDKMOTORWARE

你(们)好

我正在尝试从 controlSUITE 迁移到 C2000ware。 但是、我对编解码样式感到困惑! 例如、能否让我知道这个函数的作用是什么?

static inline uint_least8_t
CLARKE_getNumSensors(CLARKE_Handle handle)
{
    CLARKE_Obj *obj = (CLARKE_Obj *)handle;

    return(obj->numSensors);
} // end of CLARKE_getNumSensors() function

它是 C2000WARE-MOTORCONTROL-SDK 的 clarke.h 头文件的一部分。

我对函数主体的第一行有疑问。 它的作用是什么?

此致

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

    您是说"Clarke_Obj * obj =(Clarke_Obj *) handle;"? handle 参数是 Clarke_handle 类型、定义为 Clarke_Obj 对象的指针。 这一行代码声明一个到 Clarke_Obj 的本地指针、并设置为与 handle 相等、以便本地指针可被用于获得 numSensors 值。

    惠特尼

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

    感谢您的回复

    我无法理解为什么代码不能直接获得以下传感器数量:

    uint_least8_t Number= handle-> numSensors;

    另一个问题:这是一种类型的铸件吗? 为什么使用它?

    (CLARKE_Obj *)handle; 

    很抱歉、我是嵌入式编程应用的电枢。

    此致

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

    您可以直接访问它。 这些库的编码风格模仿了面向对象的编程风格、其中结构成员可以是私有的、需要通过"Get"函数进行访问。

    该行将句柄转换为类型(Clarke_Obj *)、是的。 我认为这实际上没有必要,因为 Clarke_Handle 等效于 Clarke_Obj*。

    惠特尼

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

    谢谢您 Whitney

    您是否了解任何资源或文本手册、以了解这种编程风格? 考虑到这一点、我是一名电气工程师、正在使用 TI DSP 进行电机控制编程。

    此致

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

    其中一些模块源自 MotorWare 软件包、该软件包包含一个名为"motorware_software_architecture.pdf"的文档、该文档对代码的设计方式进行了一些解释。

    正如我说过的、该代码旨在模仿面向对象的编程语言(如 C++)、即使代码是用 C 语言编写的、因此对 OOP 的一些了解有助于识别正在应用的原则。 您可能会在网上找到一些资源、为您提供简单的介绍、但我不认为有必要、因为 C 语言最终不是 OOP 语言。

    惠特尼