Я пишу блок драйвера устройства simulink для Arduino Due с подходом к функциям Matlab, как описано в руководстве по драйверу устройства Simulink. Когда я хочу передать двойное значение из кода C ++ в код функции Matlab с помощью coder.ceval (), я получаю неправильное число. Вот пример:
Функция C ++:
#include <Arduino.h>
extern "C" double dout_output()
{
return 50.5;
}
Функция Matlab в Simulink:
function x = example()
x = 0.0;
if strcmp(coder.target,'rtw'),
x = coder.ceval('dout_output');
end
Когда я запускаю этот код во внешнем режиме на Adruino, я получаю не 50,5, а большое число, например 1113794816. Есть предложения?