User-created functions
int output;
main {
output = scale_percent(get_ival(PS5_RX), 125);
set_val(PS5_RX, output);
}
function scale_percent(value, percent) {
return (value * percent) / 100;
}Last updated
int output;
main {
output = scale_percent(get_ival(PS5_RX), 125);
set_val(PS5_RX, output);
}
function scale_percent(value, percent) {
return (value * percent) / 100;
}Rules:
Declare with function name(parameter, ...) { ... }.
Parameters are optional: function reset_mode() { ... } is valid.
Parameters are local integer values.
Global runtime variables remain accessible.
A reached return expression; immediately exits.
If no return is reached, the result is 0.
Do not mix valued returns and bare returns.
Recursion compiles with a warning because worst-case stack use cannot be proven; avoid it in real-time scripts.
A user-created function's return value may be ignored. The unused-return compiler error applies to built-ins whose return value is marked as required, not to user functions.
A parameterless function used only for its side effect can be called as a statement:
Functions make repeated logic readable, but deep call chains and large expressions increase stack pressure.
Last updated
int mode;
main {
if(event_press(PS5_CIRCLE)) {
reset_mode();
}
}
function reset_mode() {
mode = 0;
}
