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

oleg70

Задам вопрос по другому,: “какого типа должна быть объявлена переменная, чтоб ей можно было присвоить значение 45635 и компилятор это значение не принимал за отрицательное” …
(а сейчас у меня условие <0 выполняется…(?))

SergDoc
oleg70:

Задам вопрос по другому

Олег пацаны тут умные - не то что я: кодятник в студию - разберуться 😃
ну задайте ему uint…

oleg70
SergDoc:

пацаны тут умные

Надеюсь, что ткнут меня носом в мою безграмотность… (если б не MS5611, с его “миллионными” значениями в расчетах, я б может и не знал,- что ничего не понимаю…)

Sir_Alex
oleg70:

Проверил, - то же самое… И так: (int32_t)45653 - тоже…

Перекомпили еще раз, должно было помочь, по всем описаниям, проблема именно в том, что константа по умолчанию идет как int, т.е. от -32768 до +32768.

mataor

хмм… а зачем вообще применять знаковые переменные? кто нам мешает использовать unsigned???

SergDoc

Не, ну а что за текст? Я без претензий ибо для меня языки программирования - это птичий язык, чесное слово, я могу понять где какие переменные, где какие алгоритмы - но общей картины я не могу представить - хоть убей, а по каким-то урывкам темболее 😦

Sir_Alex:

Перекомпили еще раз

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

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 координатам? Тут без севера не обойдешься.