Die Arduino 1.7.x-Serie von Arduino.org verwendet das alte Build-System, das stark beschädigt ist, wenn Sie versuchen, etwas Komplexeres als einfache Typen auszuführen.
Sie fügt Ihren Funktionen oben Prototypen hinzu des Programms, damit Sie nicht die richtige Reihenfolge finden müssen, aber es bringt sie völlig an die falsche Stelle. Das Ergebnis ist eine C ++ - Datei, die folgendermaßen aussieht:
#include <Arduino.h>void Move (Richtung, int Entfernung); void setup (); void loop (); enum Dir {forward = 1, rückwärts = 2, links = 3, rechts = 4}; void Move (Richtung, int Entfernung) {Richtung = vorwärts;} void setup () {// Gib deinen Setup-Code hier ein, um ihn einmal auszuführen:} void loop () {// Geben Sie hier Ihren Hauptcode ein, um ihn wiederholt auszuführen:}
Wie Sie sehen können, wurde der Prototyp mit Dir
vor der Definition von Dir , und so schlägt es kläglich fehl.
Es gibt einige Hacks, die Sie durchführen können, um die Prototypen nach Ihrer Definition zu platzieren, aber ich kann mich nicht erinnern, was sie sind
Die einfache Antwort besteht darin, Arduino 1.7.10 fallen zu lassen und stattdessen von Arduino.cc zu Arduino 1.6.10 zu wechseln. Dies verwendet das Arduino Builder-System, das die Dinge viel besser macht, einschließlich der Platzierung der Prototypen an der richtigen Stelle.
Trotz der Nummerierung ist 1.7.10 keine neuere Version als 1.6.10 - es ist eine ältere Version, die neu nummeriert wurde . Es ist alles Teil des Schismas zwischen den beiden Hälften von Arduino.
Noch besser ist es, die schreckliche Arduino-IDE vollständig loszuwerden und eine der vielen weitaus besseren IDEs zu verwenden, die es gibt.