主要内容

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

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

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

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

    # include< Arduino.h ># include“digitalio_arduino.h”走读生“C”无效digitalIOSetup (uint8_T销boolean_T模式){/ /模式= 0:输入/ /模式= 1:输出如果(模式){pinMode(销、输出);}其他的{pinMode(销、输入);}}/ /写一个逻辑值销走读生“C”无效writeDigitalPin (uint8_T销,boolean_T val) {digitalWrite(销,val);}/ /从销读取一个逻辑值走读生“C”boolean_TreadDigitalPin (uint8_T销){返回digitalRead(销);}

    这段代码封装Arduino®c++ API来编写一个数字I / O销Arduino硬件板上。

    请注意

    在c++代码所示是特定于Arduino硬件,同样的原理可以扩展到任何硬件具体的C / c++ API。

  3. 将文件保存为digitalio_arduino.cpp源文件夹,src

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

    #如果未定义_DIGITALIO_ARDUINO_H_#定义_DIGITALIO_ARDUINO_H_# include“rtwtypes.h”# ifdef__cplusplus走读生“C”{# endif无效digitalIOSetup (uint8_T销,boolean_T模式);无效writeDigitalPin (uint8_T销boolean_T val);boolean_T readDigitalPin (uint8_T销);# ifdef__cplusplus}# endif# endif/ / _DIGITALIO_ARDUINO_H_
  5. 将文件保存为digitalio_arduino.h包括文件夹。

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

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

digitalio_arduino.cpp功能包括一个Arduino.h文件定义了pinModedigitalRead功能。金宝app用于模型数据类型瓦尔变量。出于这个原因,rtwtypes.h文件包含在digitalio_arduino.h。你必须包括这个文件当你参考模型的数据类型。金宝app因为是一个数字0和53岁之间吗uint8_T数据类型是用来表示这个变量。函数的返回值是数字硬件销和代表的价值boolean_T数据类型。

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

另请参阅

||