Sie sollten keine Funktionen aus Header-Dateien heraus aufrufen. Header-Dateien dienen zum Definieren von Präprozessor-Makros (#define) und Verweisen auf Variablen / Funktionen in anderen Dateien.
Sie sollten mehrere C-Dateien erstellen und diese beim Kompilieren miteinander verknüpfen. Die Header-Datei wird verwendet, um jeder C-Datei mitzuteilen, welche Funktionen und Variablen die anderen C-Dateien haben.
Um mehrere Dateien in der Arduino IDE zu verwenden, benötigen Sie mindestens eine Header-Datei, um die Funktionen in den anderen Dateien zu beschreiben, die Sie zwischen ihnen teilen möchten. Außerdem alle globalen Variablen, die Sie für alle Dateien verwenden möchten.
Diese Definitionen sollten mit dem Attribut "extern" qualifiziert werden.
Dann müssen Sie eine oder mehrere "pde" -Dateien hinzufügen, die den tatsächlichen Code und die Variablendefinitionen für die Funktionen enthalten.
Zum Beispiel habe ich eine "mouse.h" -Datei:
extern void mouse_read(char *,char *, char *);
extern void mouse_init();
und eine "mouse.pde" -Datei:
#include <ps2.h>
PS2 mouse(6,5);
void mouse_read(char *stat,char *x, char *y)
{
mouse.write(0xeb); // give me data!
mouse.read(); // ignore ack
*stat = mouse.read();
*x = mouse.read();
*y = mouse.read();
}
void mouse_init()
{
mouse.write(0xff); // reset
mouse.read(); // ack byte
mouse.read(); // blank */
mouse.read(); // blank */
mouse.write(0xf0); // remote mode
mouse.read(); // ack
delayMicroseconds(100);
}
Dann habe ich in meiner Hauptdatei:
#include "mouse.h"
und ich kann die Funktionen in "mouse.pde" so aufrufen, als wären sie in der lokalen Datei.