s函数构建器帮助

31日视图(30天)
吉尔勒莫
吉尔勒莫 2013年4月30日
评论道: 林洁2016年4月19日
你好所有的,我正在努力创建MCP4725 DAC的功能。我有工作在Arduino IDE和代码是这样的(从Adafruit中提取驱动程序来消除需要复制Adafruit包括在工作目录):
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# include Wire.h
# include”数学。h”/ /包括数学库
#定义DAC_ADD (0 x60)
#定义WriteOnly (0 x40) / /命令更新AO只
#定义WriteAndStore (0 x60) / /命令来更新AO和AO设置保存到eepm
int;
无效的设置(void) {
Serial.begin (9600);
“你好!”);
“DAC测试仪”);
Serial.flush ();
Wire.begin ();/ /加入i2c公共汽车为主
}
无效循环(){
“输入值的腿从0 - 4095 a,按Enter键”);/ /要求用户输入在连续监测
(Serial.available () = = 0);/ /在这里等直到输入缓冲区的字符
{
/ /用户输入
一个= Serial.parseInt ();/ /新命令在1.0
并同时“=”);以a, DEC); //echos user input at the serial monitor
int twbrback = TWBR;/ / i2c具体不了解它
TWBR = 12;/ / 400千赫/ / i2c具体设置通讯频率。
Wire.beginTransmission (DAC_ADD);/ /告诉i2c设备数据,请等待
Wire.write (WriteOnly);/ /第一个字节的消息MPC4725
电线。写(a / 16);/ /第二个字节
Wire.write ((% 16)< < 4);/ /第三个字节
Wire.endTransmission ();/ /告诉设备所有指令trasnmitted刮胡子
TWBR = twbrback;/ / i2c特定
}
}
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
注意,评论在这里包到下一行。的代码工作,我可以更新董事会通过输入的模拟输出计算值(0 - 4095)连续监测。
我试图创建函数和s函数生成器但越来越以下错误:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
MCP4725_Output_v1错误。c: 82人失踪参数类型
MCP4725_Output_v1错误。c: 196类型错误参数2“MCP4725_Output_v1_Update_wrapper”;发现“双指针”预计“int”
MCP4725_Output_v1错误。c: 196不足数量的参数“MCP4725_Output_v1_Update_wrapper”3个错误,0警告
C: \ MATLAB PROGRA ~ 2 \ \ R2013A \ BIN \墨西哥人。PL:错误:编译的“MCP4725_Output_v1。c”失败了。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
我把下面的不同功能选项卡
离散更新:如果(xD ! [0] = 1) {
#如果未定义MATLAB_MEX_FILE
Wire.begin ();/ /开始i2c公共汽车
#endif
/ /初始化完成
xD [0] = 1;
}
输出:/ /等待初始化完成后如果(xD [0] = = 1) {
#如果未定义MATLAB_MEX_FILE
inttwbrback = TWBR;
TWBR = 0 x0c;/ / 400千赫
Wire.beginTransmission (DAC_ADD);
Wire.write (WriteOnly);
电线。写(DAC_in [0] / 16);
Wire.write ((DAC_in [0% 16)< < 4);
Wire.endTransmission ();
TWBR = twbrback;
#endif
}
库(包括…):
的ifndef MATLAB_MEX_FILE
# include Arduino.h
# include math.h
/ / / /包括以下i2c库从Arduino版本1.0
# include Wire.h
# include Wire.cpp
# include twi.h
# include twi.c
/ /定义DAC地址
#定义x60 DAC_ADD 0
#定义WriteOnly 0 x40
#定义x60 WriteAndStore 0
  1. endif
数据属性:
输入:DAC_in(一维,1,真实的,)
输出:无
参数:无
数据类型ATTR……:在_1: DAC_in (uint16, 12, checked, 3, 2^-3, 0)
数据类型的我试过了所有可用的设置,没有工作
我也的所有库复制到工作目录,我知道这是工作,因为我能够运行的Arduino大型Adxl345 I2c司机这个线程....启发
我做错了什么? ? ?
谢谢你的帮助…
2的评论
吉尔勒莫
吉尔勒莫 2013年5月15日
好的,我明白了工作。
问题是,由于某种原因s函数需要的参数。所以我添加了一个参数命名标准类型int8和初始化为1。为什么需要这个我不知道,但固定的问题。
@乔丹,在第82行(失踪的参数类型错误)有两个昏迷之后。“……代码…,.....更多的代码……”
我想删除一个....昏迷和添加一个类型的更多的代码…这是输入但是显然昏迷之间的空间需要另一个参数是参数。
我会将新代码粘贴,还要注意,这个编辑器删除“<”和“>”的帖子所以原文列出的库是错的。

登录置评。

接受的答案

吉尔勒莫
吉尔勒莫 2013年5月15日
初始化标签:离散状态数:1样本模式:离散样本时间价值:0.1
数据属性选项卡:
  1. 输入端口:(一维情况,1,,真实的,)
  2. 没有输出端口
  3. 参数:(par, int8,真正)s函数参数值初始化为1
  4. 数据类型属性:(不int16 In_1:情况,8日,9日,0.125,0)
库选项卡:
#如果未定义MATLAB_MEX_FILE
#包括< Arduino.h >
#包括< math.h >
#包括< Wire.cpp >
#包括< Wire.h >
#包括< twi.h >
#包括< twi.c >
/ / DAC地址定义了
#定义DAC_ADD0 x60
#endif
输出选项卡:
如果(xD [0] = = 1) {
#如果未定义MATLAB_MEX_FILE
inttwbrback = TWBR;/ / i2c特定不懂
TWBR = 12;/ / 400千赫/ / i2c具体设置通讯频率。
Wire.beginTransmission (DAC_ADD);/ /告诉i2c设备数据,请等待
Wire.write (64);/ /第一个字节在消息MPC4725
电线。写(情况[0]/ 16);/ /第二个字节
Wire.write(情况[0]% 16)< < 4);/ /第三个字节
Wire.endTransmission ();/ /告诉设备所有指令trasnmitted刮胡子
TWBR = twbrback;/ / i2c特定
#endif
}
离散更新选项卡:
如果(xD ! [0] = 1) {
#如果未定义MATLAB_MEX_FILE
Wire.begin ();/ /加入i2c公共汽车为主
#endif
xD [0] = 1;
}
注:
  1. 库需要集中在同一个司机s函数所在的文件夹(必须有一个更好的方法来管理)
  2. 不要忘记改变*包装。c . cpp文件
  3. 编辑*包装。cpp文件添加外来的“C”前的空白行(发现s函数构建器教程,它解释了一笔好交易。)
2的评论
尼萨尔Barza
尼萨尔Barza 2015年8月4日
编辑:尼萨尔Barza 2015年8月4日
嘿,吉尔勒莫,我试图运行(和/或部署)sFunction Arduino兆2560。我有arduino支持包,还包括Wir万博1manbetxe.h Wire.cpp,双胞胎。h和双胞胎。c文件在同一文件夹年代函数。我也改变了包装文件扩展名. cpp和添加外来的“C”空白包装器函数。然而,我收到以下错误,我还没有发现任何解决方案:调用realtime_make_rtw_hook,期间after_make钩生成以下错误:
构建失败的以下信息:“D: / MATLABSupportPack arduino-1.0.5 /五金万博1manbetx/工具/ avr / bin / avr-gcc”-“D: / MATLABSupportPack / arduino /包括“我“D: / MATLABSupportPack / arduino /块/ sfcn /包括“我”D: / DACsFuncSimulink / MPC4725_toggle_rtt”我“D: / DA万博1manbetxCsFuncSimulink”-“D: / NewMatlab /外面的包括“我”D: / NewMatlab /模型/包括“我”D: / NewMatlab / rtw / c / src " i " D: / NewMatlab / rtw / c / src / ext_mode /普通”-“D: / NewMatlab / rtw / c / ert”-“D: / NewMatlab /工具箱/编码器/ rtiostream / src /跑龙套”-“D: / MATLABSupportPack / arduino-1.0.5 /硬件/ arduino /核心/ arduino”- i " D: / MATLABSupportPack / arduino-1.0.5 /硬件/ arduino /变量/百万”我“D: / MATLABSupportPack / arduino-1.0.5 /图书馆/伺服”- i " D: / NewMatlab / rtw / c / src / ext_mode /连续”我“D: / MATLABSupportPack / arduinomega2560 / src”-mmcu = atmega2560 -ffunction-sections -fdata-sections化- wall gnu99 -Wstrict-prototypes - g - o - D”模式= MPC4725_toggle“- D”NUMST = 3 - D - D“NCSTATES = 0”“HAVESTDIO =“- D”ON_TARGET_WAIT_FOR_START = 1“- D”ONESTEPFCN = 0 - D - D“ext_mode = 1”“TERMFCN = 1”- D - D“MAT_FILE = 0”“MULTI_INSTANCE_CODE = 0”- D - D“INTEGER_CODE = 0”“太= 0”- D - D“CLASSIC_INTERFACE = 0”“ALLOCATIONFCN = 0”- D - D“TID01EQ = 0”“F_CPU = 16000000“- D”arduino = 105“- D”_RUNONTARGETHARDWARE_BUILD_ =“- D”_ROTH_MEGA2560_ = " - D - D“_RTT_NUMSERVOS_ = 0”“EXIT_FAILURE = 1”- D " EXTMODE_DISABLEPRINTF = " - D " EXTMODE_DISABLETESTING = " - D - c - x没有“EXTMODE_DISABLE_ARGS_PROCESSING = 1”。/ MPC4725_S_Function_wrapper。cpp。/ MPC4725_toggle。c。/ MPC4725_toggle_data。c。/ ert_main。c。/ HardwareSerial。cpp / IPAddress。cpp。/打印。cpp。/ WInterrupts。c。/ WMath。cpp。/ WString。cpp。/新。cpp。/布线。c。/ wiring_analog。c。/ wiring_digital。c。/ io_wrappers。cpp。/ rtiostream_serial。cpp。/ ext_svr。c。/ ext_work。c。/上下按钮。c。/ ext_serial_pkt。c ./ext_svr_serial_transport.c ./rtiostream_serial_interface.c ./rtiostream_utils.c
cc1plus。exe:警告:命令行选择“-Wstrict-prototypes”有效期为Ada / C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“化= gnu99”有效期为C / ObjC而不是c++
文件包括。/ MPC4725_S_Function_wrapper.cpp: 18:
D: / DACsFu万博1manbetxncSimulink /双胞胎。h:在成员函数的uint8_t TwoWire:: requestFrom (uint8_t、uint8_t uint8_t)”:
D: / DACsFu万博1manbetxncSimulink /双胞胎。h: 47:错误:太多了参数函数的uint8_t twi_readFrom (uint8_t uint8_t *, uint8_t)”
D: / DACsFu万博1manbetxncSimulink /线。cpp: 85:错误:在这点文件
D: / DACsFu万博1manbetxncSimulink /双胞胎。h:在成员函数的uint8_t TwoWire: endTransmission (uint8_t):
D: / DACsFu万博1manbetxncSimulink /双胞胎。h: 48:错误:太多了函数的参数的uint8_t twi_writeTo (uint8_t uint8_t *, uint8_t, uint8_t)”
D: / DACsFu万博1manbetxncSimulink /线。cpp: 140:错误:在这点文件
D: / DACsFu万博1manbetxncSimulink /线。cpp:在成员函数的虚拟size_t TwoWire:写(const uint8_t *, size_t):
D: / DACsFu万博1manbetxncSimulink /线。cpp: 195:错误:无效的转换从‘const uint8_t *”到“uint8_t *’
D: / DACsFu万博1manbetxncSimulink /线。cpp: 195:错误:初始化参数1“uint8_t twi_transmit (uint8_t *, uint8_t) '
文件包括从D: / MATLABSupportPack 万博1manbetx/ arduino /块/ sfcn / include / arduino_blocks_abstraction.h: 8,
D: / MATL万博1manbetxABSupportPack arduino /块/ sfcn / include / arduino_digitaloutput_lct.h: 11,
/ MPC4725_toggle.h: 31,
/ MPC4725_toggle.c: 17:
D: / MATL万博1manbetxABSupportPack arduino-1.0.5 /硬件/ arduino /核心/ arduino / arduino。h: 25:1:警告:“真正的”重新定义
文件包括。/ MPC4725_toggle.h: 24,
/ MPC4725_toggle.c: 17:
/ rtwtypes。h: 27:1:警告:这是前面定义的位置
文件包括从D: / MATLABSupportPack 万博1manbetx/ arduino /块/ sfcn / include / arduino_blocks_abstraction.h: 8,
D: / MATL万博1manbetxABSupportPack arduino /块/ sfcn / include / arduino_digitaloutput_lct.h: 11,
/ MPC4725_toggle.h: 31,
/ MPC4725_toggle.c: 17:
D: / MATL万博1manbetxABSupportPack arduino-1.0.5 /硬件/ arduino /核心/ arduino / arduino。h: 26:1:警告:“假”重新定义
文件包括。/ MPC4725_toggle.h: 24,
/ MPC4725_toggle.c: 17:
/ rtwtypes。h: 23:1:警告:这是前面定义的位置
文件包括从D: / MATLABSupportPack 万博1manbetx/ arduino /块/ sfcn / include / arduino_blocks_abstraction.h: 8,
D: / MATL万博1manbetxABSupportPack arduino /块/ sfcn / include / arduino_digitaloutput_lct.h: 11,
/ MPC4725_toggle.h: 31,
/ MPC4725_toggle_data.c: 17:
D: / MATL万博1manbetxABSupportPack arduino-1.0.5 /硬件/ arduino /核心/ arduino / arduino。h: 25:1:警告:“真正的”重新定义
文件包括。/ MPC4725_toggle.h: 24,
/ MPC4725_toggle_data.c: 17:
/ rtwtypes。h: 27:1:警告:这是前面定义的位置
文件包括从D: / MATLABSupportPack 万博1manbetx/ arduino /块/ sfcn / include / arduino_blocks_abstraction.h: 8,
D: / MATL万博1manbetxABSupportPack arduino /块/ sfcn / include / arduino_digitaloutput_lct.h: 11,
/ MPC4725_toggle.h: 31,
/ MPC4725_toggle_data.c: 17:
D: / MATL万博1manbetxABSupportPack arduino-1.0.5 /硬件/ arduino /核心/ arduino / arduino。h: 26:1:警告:“假”重新定义
文件包括。/ MPC4725_toggle.h: 24,
/ MPC4725_toggle_data.c: 17:
/ rtwtypes。h: 23:1:警告:这是前面定义的位置
文件包括从D: / MATLABSupportPack 万博1manbetx/ arduino /块/ sfcn / include / arduino_blocks_abstraction.h: 8,
D: / MATL万博1manbetxABSupportPack arduino /块/ sfcn / include / arduino_digitaloutput_lct.h: 11,
/ MPC4725_toggle.h: 31,
/ ert_main.c: 17:
D: / MATL万博1manbetxABSupportPack arduino-1.0.5 /硬件/ arduino /核心/ arduino / arduino。h: 25:1:警告:“真正的”重新定义
文件包括。/ MPC4725_toggle.h: 24,
/ ert_main.c: 17:
/ rtwtypes。h: 27:1:警告:这是前面定义的位置
文件包括从D: / MATLABSupportPack 万博1manbetx/ arduino /块/ sfcn / include / arduino_blocks_abstraction.h: 8,
D: / MATL万博1manbetxABSupportPack arduino /块/ sfcn / include / arduino_digitaloutput_lct.h: 11,
/ MPC4725_toggle.h: 31,
/ ert_main.c: 17:
D: / MATL万博1manbetxABSupportPack arduino-1.0.5 /硬件/ arduino /核心/ arduino / arduino。h: 26:1:警告:“假”重新定义
文件包括。/ MPC4725_toggle.h: 24,
/ ert_main.c: 17:
/ rtwtypes。h: 23:1:警告:这是前面定义的位置
cc1plus。exe:警告:命令行选择“-Wstrict-prototypes”有效期为Ada / C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“化= gnu99”有效期为C / ObjC而不是c++
/ HardwareSerial。cpp:函数“空白store_char (unsigned char, ring_buffer *)”:
/ HardwareSerial。cpp: 98:警告:对比签署和无符号整数表达式
/ HardwareSerial。cpp:函数“空白__vector_25 ()”:
/ HardwareSerial。cpp: 127:警告:未使用的变量“c”
/ HardwareSerial。cpp:函数“空白__vector_36 ()”:
/ HardwareSerial。cpp: 153:警告:未使用的变量“c”
/ HardwareSerial。cpp:函数“空白__vector_51 ()”:
/ HardwareSerial。cpp: 168:警告:未使用的变量“c”
/ HardwareSerial。cpp:函数“空白__vector_54 ()”:
/ HardwareSerial。cpp: 183:警告:未使用的变量“c”
/ HardwareSerial。cpp:在成员函数的空白HardwareSerial:开始(unsigned int,字节):
/ HardwareSerial。cpp: 368:警告:未使用的变量“current_config”
/ HardwareSerial。cpp:在成员函数的虚拟size_t HardwareSerial:写(uint8_t):
/ HardwareSerial。cpp: 467:警告:对比签署和无符号整数表达式
cc1plus。exe:警告:命令行选择“-Wstrict-prototypes”有效期为Ada / C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“化= gnu99”有效期为C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“-Wstrict-prototypes”有效期为Ada / C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“化= gnu99”有效期为C / ObjC而不是c++
/打印。cpp:member函数的size_t打印:打印(const __FlashStringHelper *)”:
/打印。cpp: 44:警告:“__progmem__”属性忽略了
cc1plus。exe:警告:命令行选择“-Wstrict-prototypes”有效期为Ada / C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“化= gnu99”有效期为C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“-Wstrict-prototypes”有效期为Ada / C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“化= gnu99”有效期为C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“-Wstrict-prototypes”有效期为Ada / C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“化= gnu99”有效期为C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“-Wstrict-prototypes”有效期为Ada / C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“化= gnu99”有效期为C / ObjC而不是c++
/ io_wrappers。cpp:函数“空白Serial_read (int, int, uint8_t *, int16_t *)”:
/ io_wrappers。cpp: 59:警告:“libFcnOutput”可能使用未初始化的函数
cc1plus。exe:警告:命令行选择“-Wstrict-prototypes”有效期为Ada / C / ObjC而不是c++
cc1plus。exe:警告:命令行选择“化= gnu99”有效期为C / ObjC而不是c++
/ rtiostream_serial。cpp:函数“int rtIOStreamOpen (int, void * *)”:
/ rtiostream_serial。cpp: 28:警告:未使用的变量“init_complete”
/ ext_work。c: 248:警告:“displayUsage”定义但是不习惯
:* * * (MPC4725_S_Function_wrapper。o)错误1
如果你知道我错了,请纠正我。将会非常感激你。谢谢你!

登录置评。

更多的答案(2)

米尔科
米尔科 2014年5月25日
你好,我是试图让覆盆子I2C之间的连接(主)和Arduino(奴隶)。我编辑的这个功能,我可以从奴隶读取数据,但是我不知道如何写的奴隶。
LIBRARIAS
#如果未定义MATLAB_MEX_FILE
/ /必须运行命令:
/ / gpio负载i2c
/ /对零售物价指数开始I2C
/ /路径文件在本地零售物价指数:
#包括< / home /π/ wiringPi / wiringPi / wiringPiI2C.h >
#包括< / home /π/ wiringPi / wiringPi / wiringPiI2C.c >
#包括< / home /π/ wiringPi / wiringPi / wiringPi.c >
#包括< / home /π/ wiringPi / wiringPi / piHiPri.c >
/ / - - - - - > MPU6050信息:< - - - - - -
/ /设置定义:寄存器的定义
#定义Ardunio_RG0 x6b
/ /设备标识:
/ /#定义MPU6050_RA_WHO_AM_I0 x75
/ / Arduino读注册:
#定义Arduino_XOUT_H0 x43
#定义Arduino_XOUT_L0 x44
/ /全球变量地址,高和低比特数据
intfd、gxh gxl;
#endif
输出
如果(xD [0] = = 1)
{
#如果未定义MATLAB_MEX_FILE
/ /读高字节,低字节,然后结合:
gxh = wiringPiI2CReadReg8 (fd, Arduino_XOUT_H);
gxl = wiringPiI2CReadReg8 (fd, Arduino_XOUT_L);
y0 [0] = ((gxh < < 8) | gxl);;
#endif
}
DRISCRETE更新
如果(xD ! [0] = 1) {
#如果未定义MATLAB_MEX_FILE
/ / Controllo seArduino e connesso
fd = wiringPiI2CSetup (0 x36);/ / 0 x36 indirizzoArduino Uno
wiringPiI2CWriteReg8 (fd Ardunio_RG 0 b00000010);
#endif
/ /完成初始化
xD [0] = 1;
}
我想创建一个函数执行的写作的奴隶,你有什么建议吗?谢谢

穆罕默德morad
穆罕默德morad 2016年4月13日
编辑:穆罕默德morad 2016年4月13日
亲爱的我试图在功能运行Arduino代码生成器。Arduino支持包,还包括库文件在同万博1manbetx一文件夹为s函数。但是当我建立我的功能我收到以下错误:test2_wrapper。c C:\Users\Novin Pendar桌面\ \ sfunction \ sht10 \ SHT1x 2 \ test2_wrapper.c(15):错误C2143:语法错误:缺少“{”之前“常数”C:\Users\Novin Pendar桌面\ \ sfunction \ sht10 \ SHT1x 2 \ test2_wrapper.c (15): C2059错误:语法错误:“<未知> .......................
我附上Arduino和模型文件在这个问题万博1manbetx
请帮我
你的答案可能是一个对我帮助很大
谢谢!
1评论
林洁
林洁 2016年4月19日
我想知道,如何加载用这些模块,用了,总是编译通不过。请指导

登录置评。

类别

找到更多的在自动驾驶的应用程序帮助中心文件交换

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!