Создание собственной системы стабилизации

rual
oleg70:

Ситуация такая (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)

, а в нём может быть преобразование типа.

SergDoc:

кстати есть неразрешенный вопрос, вроде как можно родное ПО PX4 компилить и отлаживать в эклипсе?

Компилить - смысла нет, отлаживать - надеюсь не придётся.

djdron
oleg70:

int32_t data;
data=45653;
if(data<0)… ГДЕ ?

Олег, покажите как у вас определены int32_t и другие типы переменных?

oleg70
djdron:

как у вас определены int32_t и другие типы переменных

Если б я знал… 😃. Полез сейчас в “дебри”, рою в сети, оказалось все не так просто…

Sir_Alex
oleg70:

Если б я знал… . Полез сейчас в “дебри”, рою в сети, оказалось все не так просто…

Как вариант, посмотреть ассемблерный код этого куска.

oleg70
oleg70:

Полез сейчас в “дебри”

Полез и нашел 😃, проблема была в настройках проекта CooCox, - действительно типы компиллер понимал неадекватно
из за непонятного #include stdint.h (подключался дважды (?) из разных мест)…
Теперь “все что нужно положительное” и давление показывает правильное, всем спасибо за поддержку…

SergDoc

Поздравляю!
У меня предложение - выкинуть еепромку 24xx - кто за? она уже не используется - раз, медленная - два, висит на i2c и занимает место на плате - три… все настройки хранятся в виртуальной eeprom в последних секторах флеша, на борту есть флеш m25p16 по spi…

rual
SergDoc:

У меня предложение - выкинуть еепромку 24xx - кто за?

Я давно ЗА, но мы, помнитцца, не докопались, где за неё АПМ цепляется. По идее, можно было от всех еепромов избавиться, достаточно набортной СД и внтренней памяти проца под настройки.

oleg70
SergDoc:

выкинуть еепромку 24xx - кто за?

И магнитометр… , я уже выкинул, оставил только наружу разъем i2c, на случай если “преспичит”…

Sir_Alex
rual:

достаточно набортной СД и внтренней памяти проца под настройки.

Вроде дидронсы напаролись на какие то проблемы с параметрами, когда они на SD карте лежат… И вроде их перенесли на флешку (но может я не правильно понял)

rual
oleg70:

И магнитометр… ,

Не согласен. Зачем портить законченную систему? Кому “приспичит” может перерезать дорожки от набортного и подключить внешний.

Sir_Alex:

Вроде дидронсы напаролись на какие то проблемы с параметрами, когда они на SD карте лежат…

настройки нужно в проце хранить, а логи и маршруты, автоскрипты можно на Сдшке.

Sir_Alex
rual:

настройки нужно в проце хранить, а логи и маршруты, автоскрипты можно на Сдшке.

По мне, кроме логов на СДшке ничего нельзя хранить. Представь что будет, если во время полета по точкам, отрубится СДшка…

SergDoc
Sir_Alex:

По мне, кроме логов на СДшке ничего нельзя хранить. Представь что будет, если во время полета по точкам, отрубится СДшка…

Народ на SD сейчас только логи и файлы-флаги - всё перенесено в проц и 24-ю тоже наттикс больше не использует - я где-то выше писал 😃

oleg70
rual:

Зачем портить законченную систему

Когда закончите разработку своего софта и начнутся активные испытания на улице, (мне так кажется…) то поймете что толку от магнитометра, как “абсолютного” датчика ориентации мало…, одна возня с калибровкой, т.е. “честный север” он будет редко показывать, а зачем он тогда ? , при управлении руками, относительную курсовую устойчивость и гира неплохо держит… (прошу сильно не ругать 😃, это чисто мое мнение…)

Sir_Alex
oleg70:

калибровкой, т.е. “честный север” он будет редко показывать, а зачем он тогда ? , при управлении руками, относительную курсовую устойчивость и гира неплохо держит… (прошу сильно не ругать , это чисто мое мнение…)

А как на счет полета по GPS координатам? Тут без севера не обойдешься.

SergDoc

Инерциалка без GPS долго не продержится - но всё же, а без компаса сразу ляжет - и не будет знать хотябы в какой стороне дом 😦

rual
oleg70:

Когда закончите разработку своего софта и начнутся активные испытания на улице, (мне так кажется…) то поймете что толку от магнитометра, как “абсолютного” датчика ориентации мало…, одна возня с калибровкой, т.е. “честный север” он будет редко показывать, а зачем он тогда ? ,

Олег, я далек от “чисто теоретической разработки” 😉 и фазу испытаний ГПС и магнита прошел год назад… прошел неуспешно, ибо меня не устроил алгоритм определения горизонта (магвикоообразный), точнее сам алгоритм работал нормально, но ИНС с ним требовала большого количества “костылей”. Сейчас моя ИНС (не просто горизонт, его я прошлой осенью сделал) готова к испытаниям, как будет погода покажу видео.
Компас абсолютно необходим, т.к. без него решить в какую сторону лететь НЕВОЗМОЖНО. Конечно можно ориентироваться на курс по ГПС при движении, но при этом для маневра возврата домой потребуется пространство размером со стадион.
Пока я не решил вопрос с автокоррекцией маг.азимута по ГНСС.

oleg70
rual:

потребуется пространство размером со стадион

Да…, я пока у себя на GPS сделал ставку, но опытов по реальному отношению скорости/точности азимута еще не проводил… (тоже из за погоды), возможно что без магнитометра система подойдет скорей для самолета… тут только тесты и еще раз тесты… А с магнитометром (чисто) практический опыт был, но как то мне не особо понравилось… (может не умею “готовить”), хотя как “показометр” он несомненно тоже полезен…

SergDoc

А у меня погода супер 😦 ладно переживу - платка 3-й день пялится в окно на спутники…
это - 4 марта 3 года ветке - надо бы чё нить подготовить 😃

soliada
SergDoc:

это - 4 марта 3 года ветке - надо бы чё нить подготовить

Торт в виде платы с шоколадными дорожками и чипами)))