#define MY_PARAMETER 10
и он несколько раз используется в разных местах очень длинной программы, то впоследствии нам достаточно лишь один раз заменить его значение в определении, а остальные замены сделает компилятор. Для удобства настройки все необходимые определения вынесены в отдельный файл проекта и снабжены комментариями.
Наличие или отсутствие определений, указанных без значения, используется для того, чтобы иметь возможность скомпилировать разные варианты программы. Например, имеются два определения
#define HELICOPTER
//#define AIRPLANE
при этом второе определение закрыто символом комментария // и невидимо для компилятора. Теперь, если в программе встретятся такие два фрагмента:
#ifdef HELICOPTER
Фрагмент программы 1;
#endif
#ifdef AIRPLANE
Фрагмент программы 2;
#endif
то компилятор обработает первый фрагмент кода и проигнорирует второй, потому что определение airplane закомментировано и не существует. И наоборот, если мы закомментируем определение helicopter и раскомментируем airplane, to будет скомпилирован второй фрагмент кода.
Существуют и более сложные условные конструкции директив компилятора, но нам сейчас достаточно знать два метода, применяемые при пользовательском конфигурировании прошивки: задание численных значений и комментирование/раскомментирование имен параметров.
В группе однотипных параметров должна быть раскомментирована только одна строка. Если вы раскомментировали новую строку, не забудьте закрыть комментарием предыдущую. В противном случае возникнет неоднозначность, которая приведет к ошибке компиляции, либо неправильной работе прошивки.
Итак, щелчком на закладке в окне IDE откройте файл config.h. Сейчас мы сконфигурируем по порядку самые необходимые параметры. После этого нужно загрузить прошивку в контроллер и проверить, как он работает. По мере подключения внешних модулей (GPS, дисплей и т. д.) мы будем вновь обращаться к настройке прошивки.
Тип рамы
В секции 1 — basic setup найдите и раскомментируйте строку, которая обозначает Х-образную раму:
#define QUADX
Минимальный рабочий газ
Внимание!
Помните, что параметры сигналов, поступающих с приемника на контроллер, и сигналов, поступающих с выходов контроллера на моторы или сервомашинки, — это совершенно разные значения. Контроллер перерабатывает входные сигналы согласно своим алгоритмам. При настройке прошивки используются длительности как входных, так и выходных сигналов.
Минимальный рабочий газ означает ^длительность выходных импульсов, поступающих с контроллера на регуляторы в режиме ожидания, при минимальном положении рукоятки газа на пульте. Из соображений безопасности настоятельно рекомендуется задавать это значение таким, чтобы при активированных моторах (режим armed) пропеллеры вращались с минимальной скоростью, предупреждая об опасности.
//#define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A
//#define MINTHROTTLE 1120 // for Super Simple ESCs 10A
//#define MINTHROTTLE 1064 // special ESC (simonk)
//#define MINTHROTTLE 1050 // for brushed ESCs like ladybird
#define MINTHROTTLE 1150 // (*)
Вы можете либо выбрать один из готовых параметров, либо опытным путем подобрать под свои регуляторы такое минимальное значение, при котором моторы начинают вращаться на холостом ходу после активации. Если ваших регуляторов нет в списке значений, оставьте раскомментированной строку по умолчанию. Но при указанном значении 1150 моторы могут вращаться слишком быстро, исправьте на 1090. Впоследствии вы сможете скорректировать его, проверяя собранный коптер.
Если же вы решили пренебречь требованиями безопасности, задайте такое значение, при котором моторы не вращаются при активации (режим armed). Обычно это значение немного больше 1000.
Максимальный рабочий газ
Это длительность выходного сигнала контроллера, при котором регулятор развивает максимальные обороты мотора. Параметр одинаковый для всех каналов. Также может потребовать подстройки опытным путем.
#define MAXTHROTTLE 1850
Если вы не знаете значение для своего регулятора, можете оставить значение по умолчанию. Не следует задавать значение большее, чем способны принять ваши регуляторы. Это чревато некорректным масштабированием управляющих сигналов контроллера, что приведет к не совсем адекватной реакции на резкие внешние воздействия. С Другой стороны, слишком низкое значение сужает динамический диапазон оборотов для акробатического пилотирования. Впоследствии, развив свои навыки пилотирования до акробатики, вы сможете проверить правильность настройки этого параметра при помощи тахометра. В графике оборотов мотора не должно быть горизонтальной площадки, когда вы увеличиваете газ на пульте, а фактические обороты мотора больше не растут.