Üstbilgi dosyalarından işlevleri çağırmamalısınız. Başlık dosyaları, işlemci öncesi makroları (#define) tanımlamak ve diğer dosyalardaki değişkenlere / işlevlere başvurmak içindir.
Birden fazla C dosyası oluşturmalı ve bunları derleme zamanında birbirine bağlamanız gerekir. Başlık dosyası, her bir C dosyasına diğer C dosyalarının hangi işlev ve değişkenlere sahip olduğunu söylemek için kullanılır.
Arduino IDE'de birden fazla dosya kullanmak için, aralarında paylaşmak istediğiniz diğer dosyalarda bulunan işlevleri tanımlamak için en az 1 başlık dosyasına ihtiyacınız vardır. Ayrıca, tüm dosyalarda kullanmak istediğiniz global değişkenler.
Bu tanımların "harici" niteliğiyle nitelendirilmesi gerekir.
Ardından, işlevler için gerçek kodu ve değişken tanımlarını içeren bir veya daha fazla "pde" dosyası eklemeniz gerekir.
Örneğin, bir "mouse.h" dosyası var:
extern void mouse_read(char *,char *, char *);
extern void mouse_init();
ve bir "mouse.pde" dosyası:
#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);
}
Sonra benim ana dosyada var:
#include "mouse.h"
ve "mouse.pde" içindeki işlevleri yerel dosyadaymış gibi çağırabilirim.