主要内容

编写特定于硬件的C/C++代码

在大多数情况下,将设备驱动程序代码集成到Simulink中金宝app®块,您需要围绕硬件供应商提供的API编写包装函数。按照以下步骤开发实现颜色选择器功能所需的C/C++代码。

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

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

    //颜色传感器#包括“颜色传感器.h”#包括“Adafruit_TCS34725.h”/*创建积分时间为50ms、增益为4x的传感器对象*/Adafruit_TCS34725 tcs=Adafruit_TCS34725(TCS34725_积分时间50MS,TCS34725_增益4X);uint8_t init_f;外行“C”无效的颜色传感器(无效的){init_f=tcs.begin();/*初始化传感器并将状态存储在init_f中*/}外行“C”空隙颜色传感器(浮动*r,浮动*g,,浮动*(b){如果(初始化)/*如果传感器正确初始化,则读取传感器读数,否则返回0*/{tcs.getRGB(r,g,b);}其他的{*r=0;*g=0;*b=0;}外行“C”无效的colorSensor_Terminate(){}

    此代码包装颜色传感器库API,以从TCS34725颜色传感器读取RGB值。

    笔记

    虽然这里所示的C++代码是特定于ARDUIO硬件的,但同样的原理可以扩展到任何硬件专用的C/C++接口。

  3. 将文件另存为颜色传感器src文件夹

  4. 创建一个空的头文件并将下面的C++代码复制到文件中。

    //颜色传感器#ifndef_彩色传感器_#定义_彩色传感器_#ifdef__cplusplus外行“C”{#恩迪夫#如果(已定义(MATLAB_MEX_文件)|已定义(RSIM_参数_加载)|已定义(RSIM_与_SL_解算器))/*这将在快速加速器模式下运行*/#定义颜色传感器_Init()(0)#定义颜色传感器步骤(a、b、c)(0)#定义颜色传感器_终止()(0)#否则无效的颜色传感器(无效的);无效的色差传感器(浮动*,浮动*,浮动*);无效的彩色传感器(无效的);#恩迪夫#ifdef__cplusplus}#恩迪夫#恩迪夫
  5. 将文件另存为颜色传感器包括文件夹

    该头文件定义C++文件中实现的函数的C原型,颜色传感器.

许多硬件设备不支持或推荐使用C++编译器。金宝app金宝appArdu金宝appino的Simulink支持包®硬件使用一个叫做AVR GCC的编译器,用C编译器编译和链接C++函数,需要添加外行“C”每个函数声明中的标识符。此标识符告诉编译器不要损坏函数名,以便它们可以与C链接器一起使用。

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