主要内容

编写硬件具体的C / c++代码

在大多数情况下,设备驱动程序代码集成到模型金宝app®块,您需要编写一个包装器函数在硬件供应商提供的API。遵循以下步骤来开发所需的C / c++代码实现颜色选择器功能。

  1. MATLAB中创建一个新的空文件®编辑器。

  2. 将下面的c++代码复制到文件中。

    / / colorSensor.cpp# include“colorSensor.h”# include“Adafruit_TCS34725.h”/ *创建对象的传感器集成50毫秒的时间和增加4 x * /Adafruit_TCS34725 tcs = Adafruit_TCS34725 (TCS34725_INTEGRATIONTIME_50MS TCS34725_GAIN_4X);uint8_t init_f;走读生“C”无效colorSensor_Init (无效){init_f = tcs.begin ();/ *初始化传感器和状态存储在init_f * /}走读生“C”空白colorSensor_Step (浮动* r,浮动* g,浮动* b) {如果(init_f)/ *如果传感器正常初始化,然后读取其他传感器返回0 * /{tcs。getRGB (r, g, b);}其他的{* r = 0;* g = 0;* b = 0;}}走读生“C”无效colorSensor_Terminate () {}

    这段代码包装色彩传感器库API来读取TCS34725颜色传感器的RGB值。

    请注意

    虽然这里的c++代码是特定于Arduino硬件,同样的原理可以扩展到任何特定于硬件的C / c++ API。

  3. 将文件保存为colorSensor.cppsrc文件夹中。

  4. 创建一个空的头文件和下面的c++代码复制到该文件。

    / / colorSensor.h#如果未定义_COLORSENSOR_H_#定义_COLORSENSOR_H_# ifdef__cplusplus走读生“C”{# endif#如果定义(定义(MATLAB_MEX_FILE) | | (RSIM_PARAMETER_LOADING) | | (RSIM_WITH_SL_SOLVER)定义)/ *这将是在快速运行加速器模式* /#定义colorSensor_Init () (0)#定义colorSensor_Step (a, b, c) (0)#定义colorSensor_Terminate () (0)其他#无效colorSensor_Init (无效);无效colorSensor_Step (浮*,浮*,浮*);无效colorSensor_Terminate (无效);# endif# ifdef__cplusplus}# endif# endif
  5. 将文件保存为colorSensor.h包括文件夹中。

    这个头文件定义了C函数的原型在c++中实现文件,colorSensor.cpp

很多硬件设备不支持或建议使用c++编译器。金宝app例如,金宝app仿真软件金宝app为Arduino支持包®硬件使用一个名为avr-gcc的C编译器。编译和链接c++函数C编译器,您需要添加走读生“C”在每个函数声明的标识符。这个标识符告诉编译器不损坏函数名,这样就可以使用C链接器。

在下一节中,您将选择系统对象模板和填充方法。