Вынести свои функции из скетча в отдельные файлы
- Войдите на сайт для отправки комментариев
Втр, 29/10/2013 - 15:23
Хочу разнести основное тело скетча и функции по разным файлам - мне так удобнее - одновременно на трех мониторах отлаживать код, чем постоянно скроллить туды-сюды.
Для примера кратенький рабочий скетч:
#define PAUSE 100 int led1 = 13; int led2 = 9; void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); } void loop() { blinkLed1(); blinkLed2(); } void blinkLed1() { digitalWrite(led1, HIGH); delay(PAUSE); digitalWrite(led1, LOW); delay(PAUSE); } void blinkLed2() { digitalWrite(led2, HIGH); delay(PAUSE); digitalWrite(led2, LOW); delay(PAUSE); }
Делаю по [url=http://arduino.cc/en/Hacking/BuildProcess]этой статье[/url] (с английским не очень дружу, увы).
Т.е. в файле Sketch.ino оставляю инициализацию, setup() и loop():
#define PAUSE 100 int led1 = 13; int led2 = 9; void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); } void loop() { blinkLed1(); blinkLed2(); } // Подключаем BlinkLed1.c #include "BlinkLed1.c" // Подключаем BlinkLed2.c #include "BlinkLed2.c"
а каждую функцию сохраняю в отдельные файлы functionN.c, которые лежат там же, где и Sketch.ino
Пример файла с функцией:
#include "Arduino.h" void blinkLed1() { digitalWrite(led1, HIGH); delay(PAUSE); digitalWrite(led1, LOW); delay(PAUSE); }
Но не выходит, где-то что-то пропущено - когда файл цельный, все компилируется, когда разделяю - выходит ошибка:
error: 'blinkLed1' was not declared in this scope
error: 'blinkLed2' was not declared in this scope
Где дальше копать?
переименуйте file.c в file.ino, и все получится
Спасибо, получилось.
Надо еще #include "BlinkLed1.c" и #include "Arduino.h" исключить из кода, само подхватывается.
http://arduino.ru/forum/programmirovanie/vynesti-svoi-funktsii-iz-sketch...