Вынести свои функции из скетча в отдельные файлы
- Войдите на сайт для отправки комментариев
Втр, 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...