Help with matlab C eval function

4 次查看(过去 30 天)
Raghu K
Raghu K 2021-2-10
回答: Satwik 2024-2-16
Hello,
I am trying to pass a pointer structure and normal variables using C eval. Matlab throws error, cannot parse variables to uint8 from double. I am not sure where this type casting is happening. Any help is appreciated.
uint8_t checkcurrentk(float ILout, ila* obj) // C function
Vout=(coder.ceval('checkcurrent',IA,coder.ref(ila)));
typdef struct s_AIndCurr
{
float ILa1
float ILa2
float ILS3
float ILScal
} Ilas
extern Ilas ila;

回答(1 个)

Satwik
Satwik 2024-2-16
Ensure that the function name you use in “coder.ceval” matches the actual function name. In the code you provided, the C function is named “checkcurrentk” and the function call in the “coder.ceval” is “checkcurrent”. This should match unless you have a specific reason for the discrepancy.
Additionally, the error message indicates that you might be passing a “double” to a function that expects a “uint8”. You should check all instances of calling “coder.ceval” and ensure that the types of all arguments match the expected types in the C function declarations.
Addressing these points should resolve the issue. If the issue persists, please provide the complete code to help diagnose the issue further.

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by