Arduinoで関数を定義する場合は、以下のようにsetupとloop以外のところで定義する。
---------------------------------
void setup() {
// 処理書く
}
void loop() {
// 処理書く
}
[戻り値の型] 関数名() {
// 処理書く
}
---------------------------------
「error: return-statement with a value, in function returning 'void' [-fpermissive]」というエラーは、戻り値の指定がおかしい場合などに出力される。
自作関数はvoidか型を「戻り値の型」に定義する。
1.void 関数名() ← voidは戻り値を必要としない場合。
(例)
void loop() {
display();
}
void display() {
int r = r + 10;
Serial.printf(r);
}
2.[戻り値の型] 関数名() ← 戻り値を必要する場合。
(例)
void loop() {
String txt = display();
Serial.print(txt);
}
String display() {
String r = "abc";
return r; // 戻り値が必要な場合は定義する。returnがないと値が戻ってこない。
}
■参考サイト
Arduinoチュートリアル 基礎編