Создание собственной системы стабилизации
Ситуация такая (CooCox): (для проверки сделал следующий код)
int32_t data;
data=45653;
if(data<0)
{out_usart2(0x2D);
data=abs(data);
}
Так вот компиллер считает что 45653 - “меньше нуля” (???), потом ессно делает abs() и далее из “data” получается -19883 (??)
Причем все нормально до 32768, а далее уже ненормально… Мне всегда казалось что int32_t (stdint.h) хватает чтоб 45653 было положительным…
Минуса быть не должно! Функция abs() (типовая) работает ТОЛЬКО С ПЛАВУЧКОЙ (float, double), вероятно срабатывает каконидь сурогатный подкокосовый макросс
#define ABS(X) ((X<0)?-X:X)
, а в нём может быть преобразование типа.
кстати есть неразрешенный вопрос, вроде как можно родное ПО PX4 компилить и отлаживать в эклипсе?
Компилить - смысла нет, отлаживать - надеюсь не придётся.
int32_t data;
data=45653;
if(data<0)… ГДЕ ?
Олег, покажите как у вас определены int32_t и другие типы переменных?
как у вас определены int32_t и другие типы переменных
Если б я знал… 😃. Полез сейчас в “дебри”, рою в сети, оказалось все не так просто…
Если б я знал… . Полез сейчас в “дебри”, рою в сети, оказалось все не так просто…
Как вариант, посмотреть ассемблерный код этого куска.
Я в дневнике выложил текущую прошивку и лодырь (пока всё обзывается px4)
Полез сейчас в “дебри”
Полез и нашел 😃, проблема была в настройках проекта CooCox, - действительно типы компиллер понимал неадекватно
из за непонятного #include stdint.h (подключался дважды (?) из разных мест)…
Теперь “все что нужно положительное” и давление показывает правильное, всем спасибо за поддержку…
Поздравляю!
У меня предложение - выкинуть еепромку 24xx - кто за? она уже не используется - раз, медленная - два, висит на i2c и занимает место на плате - три… все настройки хранятся в виртуальной eeprom в последних секторах флеша, на борту есть флеш m25p16 по spi…
У меня предложение - выкинуть еепромку 24xx - кто за?
Я давно ЗА, но мы, помнитцца, не докопались, где за неё АПМ цепляется. По идее, можно было от всех еепромов избавиться, достаточно набортной СД и внтренней памяти проца под настройки.
выкинуть еепромку 24xx - кто за?
И магнитометр… , я уже выкинул, оставил только наружу разъем i2c, на случай если “преспичит”…
достаточно набортной СД и внтренней памяти проца под настройки.
Вроде дидронсы напаролись на какие то проблемы с параметрами, когда они на SD карте лежат… И вроде их перенесли на флешку (но может я не правильно понял)
И магнитометр… ,
Не согласен. Зачем портить законченную систему? Кому “приспичит” может перерезать дорожки от набортного и подключить внешний.
Вроде дидронсы напаролись на какие то проблемы с параметрами, когда они на SD карте лежат…
настройки нужно в проце хранить, а логи и маршруты, автоскрипты можно на Сдшке.
настройки нужно в проце хранить, а логи и маршруты, автоскрипты можно на Сдшке.
По мне, кроме логов на СДшке ничего нельзя хранить. Представь что будет, если во время полета по точкам, отрубится СДшка…
По мне, кроме логов на СДшке ничего нельзя хранить. Представь что будет, если во время полета по точкам, отрубится СДшка…
Народ на SD сейчас только логи и файлы-флаги - всё перенесено в проц и 24-ю тоже наттикс больше не использует - я где-то выше писал 😃
Зачем портить законченную систему
Когда закончите разработку своего софта и начнутся активные испытания на улице, (мне так кажется…) то поймете что толку от магнитометра, как “абсолютного” датчика ориентации мало…, одна возня с калибровкой, т.е. “честный север” он будет редко показывать, а зачем он тогда ? , при управлении руками, относительную курсовую устойчивость и гира неплохо держит… (прошу сильно не ругать 😃, это чисто мое мнение…)
калибровкой, т.е. “честный север” он будет редко показывать, а зачем он тогда ? , при управлении руками, относительную курсовую устойчивость и гира неплохо держит… (прошу сильно не ругать , это чисто мое мнение…)
А как на счет полета по GPS координатам? Тут без севера не обойдешься.
Инерциалка без GPS долго не продержится - но всё же, а без компаса сразу ляжет - и не будет знать хотябы в какой стороне дом 😦
Когда закончите разработку своего софта и начнутся активные испытания на улице, (мне так кажется…) то поймете что толку от магнитометра, как “абсолютного” датчика ориентации мало…, одна возня с калибровкой, т.е. “честный север” он будет редко показывать, а зачем он тогда ? ,
Олег, я далек от “чисто теоретической разработки” 😉 и фазу испытаний ГПС и магнита прошел год назад… прошел неуспешно, ибо меня не устроил алгоритм определения горизонта (магвикоообразный), точнее сам алгоритм работал нормально, но ИНС с ним требовала большого количества “костылей”. Сейчас моя ИНС (не просто горизонт, его я прошлой осенью сделал) готова к испытаниям, как будет погода покажу видео.
Компас абсолютно необходим, т.к. без него решить в какую сторону лететь НЕВОЗМОЖНО. Конечно можно ориентироваться на курс по ГПС при движении, но при этом для маневра возврата домой потребуется пространство размером со стадион.
Пока я не решил вопрос с автокоррекцией маг.азимута по ГНСС.
потребуется пространство размером со стадион
Да…, я пока у себя на GPS сделал ставку, но опытов по реальному отношению скорости/точности азимута еще не проводил… (тоже из за погоды), возможно что без магнитометра система подойдет скорей для самолета… тут только тесты и еще раз тесты… А с магнитометром (чисто) практический опыт был, но как то мне не особо понравилось… (может не умею “готовить”), хотя как “показометр” он несомненно тоже полезен…
А у меня погода супер 😦 ладно переживу - платка 3-й день пялится в окно на спутники…
это - 4 марта 3 года ветке - надо бы чё нить подготовить 😃
это - 4 марта 3 года ветке - надо бы чё нить подготовить
Торт в виде платы с шоколадными дорожками и чипами)))
Торт в виде платы с шоколадными дорожками и чипами)))
Ага, вот этой )
rcopen.com/files/4e0e13769970730077b1c679