Базовый заголовок (#include)
Идея использования базового заголовочного файла базируется на той особенности программного обеспечения Arduino, которая заключается в использовании для компиляции скетчей компилятора языка Си. Поскольку есть Си, то есть и возможность использовать в своих скетчах и собственные макроопределения (#define
), например печально известное:
#define TRUE FALSE
Но при этом возникает вопрос, где же разместить этот заголовочный файл, этот <my_arduino_defs.h>?
Оказывается, его несложно разместить в директории, в котором Arduino IDE хранит директории со скетчами, а в код скетча включать, добавляя в начало PDE-файла (начиная с версии 1.0 используются файлы с расширением INO) строку
#include "../my_arduino_defs.h"
Вопрос лишь, будет ли это работать. В Arduino IDE версии 1.0 (Ubuntu 12.04) не работает, так что для тех, кто желает проверить работоспособность идеи, прилагаю набор тестовых скетчей. Файлы из архива следует распаковать в рабочую папку sketchbook
. После этого надо переместить файл my_arduino_defs.h
из директория sketchbook/tmp
в директорий sketchbook
.
Тем не менее, в Linux есть несколько рискованный (с точки зрения целостности данных) способ решить эту проблему. Файл my_arduino_defs.h
следует разместить в директории /tmp
-- тогда при компиляции компилятор его найдёт, поскольку сама компиляция выполняется в директории /tmp/build*МНОГО*ЦИФР*.tmp
. Насколько мне известно, в Windows есть переменная окружения %TEMP
(или %TMP
?), возможно, что компилятор производит компиляцию сходным образом.
Но оболочка shell системы Linux позволяет использовать вместо файла /tmp/my_arduino_defs.h
символьную ссылку /tmp/my_arduino_defs.h
, разместив оригинал файла где-нибудь в более безопасном от случайного удаления месте, ведь файлы в директории /tmp
являются как бы временными, и теоретически все их можно безопасно удалить при очередной загрузке системы. В этом файл /tmp/my_arduino_defs.h
получается как бы квази-временным файлом, который как бы не нужно удалять -- в общем неподходящее место для его размещения, директорий /tmp
. А символьную ссылку можно удалить совершенно безопасно, а при загрузке системы создавать её, прописав соответствующую команду в ~/.profile
.
- Базовый заголовок (#include)
- Arduino как терминал
- Как увидеть PWM
- Почему-то программа перестала работать
- Дребезг контактов
- Какой потенциометр выбрать
- Спящий режим Arduino
- Как уменьшить размер скетча
- Как использовать сторожевой таймер микроконтроллера ATmega328p
- Экономия энергопотребления Arduino
- Таинственный таймер-счётчик 2 Arduino Leonardo
- Arduino и микроконтроллер ATmega8
- Как перезагрузить Arduino (программный рестарт)
- Как перезагрузить Arduino (холодный рестарт)