编写特定于硬件的C / c++代码
在大多数情况下,将设备驱动程序代码集成到模型金宝app®块,您需要编写一个包装器函数在硬件供应商提供的API。遵循以下步骤来开发所需的C / c++代码实现数字读写功能:
MATLAB中创建一个新的空文件®编辑器。
将下面的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。
将文件保存为
digitalio_arduino.cpp
源文件夹,src
。创建一个空的头文件和下面的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_
将文件保存为
digitalio_arduino.h
包括文件夹。这个头文件定义了C函数的原型在c++中实现文件,
digitalio_arduino.cpp
。
很多硬件设备不支持或建议使用c++编译器,例如金宝app金宝appArdu金宝appino硬件仿真软件支持包使用一个C编译器avr-gcc
。为了编译和链接c++函数C编译器,您需要添加走读生“C”标识符在每个函数声明告诉编译器不要损坏函数名,这样就可以使用C链接器。
的digitalio_arduino.cpp
功能包括一个Arduino.h
文件定义了pinMode
和digitalRead
功能。金宝app用于模型数据类型销
和瓦尔
变量。出于这个原因,rtwtypes.h
文件包含在digitalio_arduino.h
。你必须包括这个文件当你参考模型的数据类型。金宝app因为销
是一个数字0和53岁之间吗uint8_T
数据类型是用来表示这个变量。函数的返回值是数字硬件销和代表的价值boolean_T
数据类型。
在下一节中,您将选择系统对象模板并开始填充方法。