Специальные цены   новые товары
+ Ответить в теме
Страница 143 из 165 ПерваяПервая ... 133 141 142 143 144 145 153 ... ПоследняяПоследняя
Показано с 5,681 по 5,720 из 6569

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

Тема раздела Квадрокоптеры. Общие вопросы в категории Квадрокоптеры и мультироторы; Сообщение от oleg70 повышать разрядность шумов не вижу смысла... ну как бы так: Код: const double T1 = 15.0 + ...

  1. #5681

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Цитата Сообщение от oleg70 Посмотреть сообщение
    повышать разрядность шумов не вижу смысла...
    ну как бы так:
    Код:
    const double T1 = 15.0 + 273.15;    /* temperature at base height in Kelvin */        
    const double a  = -6.5 / 1000;    /* temperature gradient in degrees per metre */        
    const double g  = 9.80665;    /* gravity constant in m/s/s */        
     const double R  = 287.05;    /* ideal gas constant in J/kg/K */
    https://github.com/SergDoc/Firmware/...s5611.cpp#L705

  2.  
  3. #5682

    Регистрация
    26.09.2011
    Адрес
    Н.Новгород
    Возраст
    43
    Сообщений
    1,125
    Цитата Сообщение от djdron Посмотреть сообщение
    Оптимизация включена, без оптимизации что-то лишнее добавляется, а так с = а * b выполняется за 6 тактов
    a,b внутри цикла не меняются, с - нигде не используется. Оптимизатор это вообще из цикла выкинуть может. Не очевидный какой-то тест.

  4. #5683

    Регистрация
    10.12.2013
    Адрес
    Люберцы
    Возраст
    33
    Сообщений
    168
    Цитата Сообщение от AlexSneg Посмотреть сообщение
    a,b внутри цикла не меняются, с - нигде не используется. Оптимизатор это вообще из цикла выкинуть может. Не очевидный какой-то тест.
    ну это я как пример привел, конечно я смотрел чтобы компилятор не выкинул код. Я смотрю асемблерный код в отладчике как выполняется. Если тест не очевидный то какой очевидный?

    без оптимизации будет 90мс, компилятор какието лишние инструкции добавляет.

  5. #5684

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от djdron Посмотреть сообщение
    без оптимизации будет 90мс, компилятор какието лишние инструкции добавляет.
    Снег дело говорит:
    Цитата Сообщение от AlexSneg Посмотреть сообщение
    a,b внутри цикла не меняются, с - нигде не используется.
    при компиляции вся операция выкинется, так как результат её дальше не используется, нада так:
    for(int i=0;....){ c += a* (double)i; }
    printf("%f",(float)c) ;

  6.  
  7. #5685

    Регистрация
    10.12.2013
    Адрес
    Люберцы
    Возраст
    33
    Сообщений
    168
    никуда компилятор ничего не выкидывает, можно же объявить так

    volatile double a;
    volatile double b;
    volatile double c;

    вот асемблер какой получается

    c = a * b;
    LDR.N R0, [PC, #0x20]
    VLDR D0,[R0, #0]
    VLDR D1,[R0, #+8]
    VMUL.F64 D0,D0,D1
    VSTR D0,[R0, #+16]

    Это при максимальной оптимизации. Оптимизация убирает лишнии копирования из памяти в регистры процессора и обратно. Фишка в том что VMUL.F64 D0,D0,D1 выполняется за один такт.

    так выглядет без оптимизации:
    LDR.N R0,[PC, #0x2С]
    VLDR D0,[R0, #0]
    LDR.N R0,[PC, #0x2С]
    VLDR D1,[R0, #0]
    VMUL.F64 D0,D0,D1
    LDR.N R0,[PC, #0x24]
    VSTR D0,[R0, #0]

    даже если посчитать такты нужные для выполнения инструкций то примерно похоже на правду.
    Последний раз редактировалось djdron; 24.04.2015 в 15:43.

  8. #5686

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    ну как бы так:
    Забавно... Типа - температурная поправка воздух/высота требует большего числа знаков.. Не уверен что сенсор измеряет реальную температуру воздуха ... Надо проверять.

  9. #5687

    Регистрация
    24.01.2010
    Адрес
    Москва
    Возраст
    29
    Сообщений
    3,547
    Записей в дневнике
    33
    Если кому интересно, сегодня возникла надобность раздербанить назу)))) Походу закис шлейф и выдавало по одной из осей ошибку, но я раздербанил все и посмотрел как там все устроено.
    Фото увы не делал да и не на что там особо смотреть.

    Собственно как устроена виброразвязка: От металического кубика с датчиком идет шлейфик и соответственно все это держется на оч мягкой пенорезине, вот только есть один нюанс (как в анекдоте) кубик этот полый и датчик залит внутри при помощи эпоксидки (увидеть это не сняв кубик невозможно). Так что по сути кубик это монолит в центре которого датчик.

    И кстати что заметил не знаю баг это или фича, но кубик был теплый (перед этим включал назу мин на 5-10) так что возможно он еще и изнутри подогревается, но насчет этого я не уверен.

    Да наза починилась)))) так что дербанил не зря)))

  10.  
  11. #5688

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    подогревается модулем Пельтье - это мы уже выяснили давно, да и что за датчики тоже (теоретически и по рассказам таймкопа) скажу так на датчиках которые мы используем - это не надо, ну разве что в 40 градусный мороз....
    я тут для gps фильтрик посчитал маленький на 5 листов А4 теперь репу чешу как его в мегакод превратить )))))

  12. #5689

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    репу чешу как его в мегакод превратить
    Чё,помочь ?

  13. #5690

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SergDoc Посмотреть сообщение
    скажу так на датчиках которые мы используем - это не надо, ну разве что в 40 градусный мороз
    в 35 градусный точно не надо, проверено )

  14. #5691

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Чё,помочь ?
    не, в проц упёрся ))) на каждой интерации извращение одно делать надо так что проц только с fpu...

  15. #5692

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от rual Посмотреть сообщение
    в 35 градусный точно не надо, проверено
    А мне кажется что этот подогрев не спроста... Встроенная в сенсоры температурная компенсация всегда у меня вызывала много вопросов, а тут ребята похоже сделали "по взрослому" как в настоящих ЛА, наверно этот подогрев контролируется программно, отсюда и выдающиеся характеристики по стабильности получили .

  16. #5693

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Цитата Сообщение от oleg70 Посмотреть сообщение
    а тут ребята похоже сделали "по взрослому" как в настоящих ЛА, наверно этот подогрев контролируется программно, отсюда и выдающиеся характеристики по стабильности получили
    аналоговые датчики без компенсации и дабы не плодить танцы с холодильником как в AutoQad - подогрели )))

  17. #5694

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от oleg70 Посмотреть сообщение
    А мне кажется что этот подогрев не спроста...
    При более-менее постоянной низкой температуре проблем не замечал, а вот если из теплой машины вытащить на мороз и сразу лететь, то немного сносит поначалу, но не сильно критично.

  18. #5695

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Чёй-та тема заглохла...
    Я вот с Калманом подружился))) кстати 90% примеров в нете неправильные)))
    могу дать подсказку - регулятор (Kalman Gain) практически все рассчитывают неправильно, из-за лени или непонимания рассчёта обратной матрицы, её, точнее 2 формулы рассчёта превращают в одну, чем вызывают проблемы регулировки в реальных случаях, в теоретических (идеальных) условиях работает - практически нет - несколько статей на хабре с той же ошибкой и люди писаются от счастья, что прозрели прочитав)))
    так вот скажу - там неправильно...
    p.s. кто-то может сказать, что я изучил его ещё на курсах edx, разочарую - курс не дал ничего кроме представления о нём о чём-то как реальном, потом несколько попыток тупо посчитать, но так как я пока не представлю все происходящие процессы в голове (ну уж видно так мозг у меня устроен) формулы остаются для меня просто формулами не имеющими реального смысла.... картинка сложилась )))
    Последний раз редактировалось SergDoc; 26.04.2015 в 22:26.

  19. #5696

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Да примеры в тырнете скорее правильные, но большинство из них приведены для линейных процессов, чего к сожалению практически нет в жизни. А вот с нелинейными уже сложнее, где нужно проводить линеаризацию модели через частные производные, джакобины (jacobians) или как их там...
    Из курса тогда так и не понял мат. сути как получается главный рег. коэф. т.е. kalman gain. Мне тоже нужно что бы на пальцах было понятно, либо в крайнем случае кубиками мозайки могут быть четкие ясные абстракции ))) А разобрался, раскажи всем

    P.s. раньше копался с этим примерчиком, так в нем реально поддельный калман с ошибками, т.е. подогнали на результат, а по сути не рабочий)))
    https://www.cs.utexas.edu/~teammco/misc/kalman_filter/

  20. #5697

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Привет! Давно тебя не видно!!!
    Самый прикол в том что оно вроде всё не так и сложно, но на пальцах рассказать как-то пока не могу )))
    Короче на реальном железе попробую - тогда может что и расскажу)))
    на данный момент просчитываю 3 координаты, 3 скорости, без матрицы поворота и без вектора и матрицы управления...
    да и 5 листов в "аналоговом" виде как то в "цифру" переводить влом...
    Я расписывал матрицы и смотрел, что в них получается и к чему это приводит считал их по одной тут http://matrixcalc.org/
    самая проблема - это ковариации (шум) самого фильтра - тут без бубна никак...
    а вот регулятор берётся разный в зависимости, что собрался делать: прогнозировать, фильтровать или сглаживать...
    Последний раз редактировалось SergDoc; 27.04.2015 в 09:54.

  21. #5698

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от mahowik Посмотреть сообщение
    так в нем реально поддельный калман с ошибками, т.е. подогнали на результат, а по сути не рабочий
    Давно были подозрения, что толком мало кто разбирается в этом (поэтому и объяснить не могут), а набуробить "супер пупер" кода всегда можно, а наглядных результатов практически нет...

  22. #5699

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Привет! Давно тебя не видно!!!
    здаров!
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Давно были подозрения, что толком мало кто разбирается в этом (поэтому и объяснить не могут), а набуробить "супер пупер" кода всегда можно, а наглядных результатов практически нет...
    это даже не фильтр, а скорее вычислитель и суть фильтра как раз понятна была, когда разбирался... помню понравилось обьяснение с форума http://www.avrfreaks.net/forum/tut-t...wtopic&t=84846 (4й пункт)...

  23. #5700

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от mahowik Посмотреть сообщение
    это даже не фильтр, а скорее вычислитель
    Вот вот.. Как я понял, это скорей некоторый "предсказатель поведения" работающий на основе анализа поведения на предыдущих итерациях (?), ну и как следствие - как бы "фильтрует" неправильные реакции... (во загнул.. )

  24. #5701

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Это не гадатель )))
    Вот по данному примеру:
    x = (A * x) + (B * c) - это тупо интегрирование скорости по времени - получаем путь (Координату)
    P = (A * P * AT) + Q - рассчитываем ошибку интегрирования - понятно что при первой интерации будет равна Q - якобы ковариации самого фильтра, но мы прекрасно видим что матрицу Q задали и забыли...

    дальше

    S = (H * P * HT) + R - вспомогательная матрица - из неё потом найти надо обратную
    K = P * HT * S-1 - рассчёт коэффициента усиления так вот тут и выше матрица H - Jacobian matrix, а нифига не нарисованная от руки...
    дальше

    y = m - (H * x) - вспомогательный вектор для уточнения выходного вектора из показаний датчика но тут не H*x, а отдельная функция h(x) (считается отдельно)

    x = x + (K * y) - кстати опять интегрирование только с уточнёнными данными т.е, новый x - вектор на выходе
    P = (I - (K * H)) * P - уточнение ошибки
    т.е. получается задачка в 2-х местах за уши притянута к ответу

  25. #5702

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Это не гадатель )))
    Любую непонятную вещь можно объяснить понятно... Мне так и не понятно пока: суть метода в чём ? общая идея, так сказать.. (?) а матрицы, шматрицы - это уже потом...

  26. #5703

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    суть проста - мы из скорости и пути посчитанных на предыдущем шаге получаем прогнозируемые данные о нынешнем шаге, далее через регулятор корректируем их полученными нынешними (неточными) данными и подстраиваем регулятор для последующей интерации, на основе уже полученных данных... вся фишка тут в самонастраивающемся регуляторе...

  27. #5704

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    мы из скорости и пути посчитанных на предыдущем шаге
    Скорость и путь ЧЕГО мы считаем (или меряем) вообще ? "На руках" у нас только данные с: гиры,акселя,магнитометра,барометра ну и GPS - это все исх. данные, и что мы в результате хотим получить ?
    Стабилизацию горизонта ? Или глобальное положение "тела" в пространстве ? Цель не ясна....

  28. #5705

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Я по данной задачке объяснял для простоты понимания, а вообще всё можно задействовать и почти по тем же формулам - добавить в матрицы свои входные данные добавить вектор и матрицу управления, добавить матрицу поворота из локальных координат в глобальные - вот в принципе и всё - одна проблема, пока всё линейно - будет работать даже та хрень по ссылке, в остальных случаях - крах полный...
    вот ещё что, различают дискретный и постоянного времени фильтры - там тоже есть различия...

    Цитата Сообщение от oleg70 Посмотреть сообщение
    Стабилизацию горизонта ? Или глобальное положение "тела" в пространстве ? Цель не ясна....
    чем стабилизировать? мы просто дальше подаём полученные значения в ПИД...

  29. #5706

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    мы просто дальше подаём полученные значения в ПИД...
    Т.е. целевая функция - стабильная платформа или тупо стабилизация... Ух тогда насколько более стабильным должен получиться коптер, по сравнению скажем с КУКом например.., учитывая мощь применяемого мат/аппарата...
    ждем результатов, интересно..

  30. #5707

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    посмотрим, я щас пытаюсь запустить всё это дело, посмотреть как оно, но где-то, что-то накосячил пока датчики не стартуют )))

  31. #5708

    Регистрация
    27.12.2009
    Адрес
    Днепродзержинск, Украина
    Возраст
    43
    Сообщений
    281
    Записей в дневнике
    3
    Всем привет. Прошу помощи у создателей систем стабилизации. У меня случился глюк в проекте. Проект обросший кучей связей и искать баг было трудно. Повырезал все что мог и это не помогло. Короче суть проблемы в следующем. Пользую леченный таблеткой кейл 4.23 и выше. Использую форматированный вывод sprintf с для float. Когда производится вывод в прерывании, а в основном цикле или в в прерывании с более низким уровнем крутится функция delayMicroseconds(500);, то результатом функции sprinf является 0. Если заремарить delayMicroseconds, то все работает. Пробовал на 100 и 103 камушке и разных версиях компилятора - результат не меняется. Уровень оптимизации компилятора нулевой, оптимизация по скорости отключена. Пробовал запрещать прерывания при выполнении sprinf - результата нет. Уже 8 дней ищю. Подскажите плиз если есть мысли по решению этой проблемы. Текст майна прилагаю -

    #include "stm32f10x.h"
    #include "stdio.h"

    char temp[]="Просто текст от нефик делать";
    float a=2.780;
    //-----------------------------------------------------

    uint32_t micros(void)
    {
    static uint32_t i=0;
    i++;
    return i;
    }
    //-----------------------------------------------------
    void delayMicroseconds(uint32_t us){

    uint32_t now = micros();
    while ((micros() - now) < us);
    }
    //-----------------------------------------------
    int main(void)
    {
    __disable_fiq();
    SysTick_Config(SystemCoreClock / 1000);
    SysTick->VAL = 0;
    __enable_fiq();
    while (1)
    {
    delayMicroseconds(500);
    }
    }
    //-----------------------------------------------
    void SysTick_Handler(void)
    {
    sprintf(temp,"%05.1f",a);
    sprintf(temp,"%u",SystemCoreClock);
    a+=1.8753456;
    }
    //-----------------------------------------------

  32. #5709

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от okan_vitaliy Посмотреть сообщение
    то результатом функции sprinf является 0.
    Очень похоже на нехватку памяти (стэка, кучи и пр.), больше ничего не могу сказать...

  33. #5710

    Регистрация
    27.12.2009
    Адрес
    Днепродзержинск, Украина
    Возраст
    43
    Сообщений
    281
    Записей в дневнике
    3
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Очень похоже на нехватку памяти (стэка, кучи и пр.), больше ничего не могу сказать...
    Стек и кучу увеличивал. Думал, что с опциями в проекте что то не так. Взял даже эксемпл для дискавери и вставил в него этот код. Никаких изменений. Я уже не знаю что и думать, то ли у меня баг, то ли в самом кейле. Хотя кейлы - солидная контора. Получается, что sprintf с float опцией можно только в основном цикле при таком раскладе использовать. Причем с целочисленным выводом sprintf работает нормально. Я уже за коптер свой начинаю переживать, может еще чего в компиляторе вылезет и прямой дорогой в китай полетим к праздникам.

  34. #5711

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от okan_vitaliy Посмотреть сообщение
    Прошу помощи у создателей систем стабилизации. У меня случился глюк в проекте.
    Сомнительная инициализация глобальной переменной temp, лучше сделать так
    char temp[30];

  35. #5712

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от okan_vitaliy Посмотреть сообщение
    может еще чего в компиляторе вылезет и прямой дорогой в китай полетим к праздникам.
    У меня тоже до определенного момента "всё летало", но с постепенным разрастанием кода, начались аналогичные баги, например структура от SD карты перестала заполняться (или затираться ?), тоже вот копаюсь...
    А на Keil грешить - последнее дело, тут разбираться уже с программированием надо.

  36. #5713

    Регистрация
    27.12.2009
    Адрес
    Днепродзержинск, Украина
    Возраст
    43
    Сообщений
    281
    Записей в дневнике
    3
    Цитата Сообщение от oleg70 Посмотреть сообщение
    У меня тоже до определенного момента "всё летало", но с постепенным разрастанием кода, начались аналогичные баги, например структура от SD карты перестала заполняться (или затираться ?), тоже вот копаюсь...
    А на Keil грешить - последнее дело, тут разбираться уже с программированием надо.
    Я раньше баги в кодевижене находил, а кейл вроде солидный но на 100 процентов не уверен в его правильности. Просто спринтф при выводе в прерывании флоатом очень настораживает. Можешь сам глянуть .
    stm32vldiscovery_package.zip
    Короче пока баг в прикрепленном файле не найду - не успокоюсь. Нарушается концепция программирования, когда начинаешь костыли вставлять.

  37. #5714

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от okan_vitaliy Посмотреть сообщение
    Просто спринтф при выводе в прерывании флоатом очень настораживает
    Тут ведь, надо понимать, что пишем на старом добром СИ который эволюционировал со времен создания, и не факт, что реализация sprintf была грамотно адаптирована, там одних определений/переопределений типов вагон, короче только дебаггер или дизассемблер....

    Цитата Сообщение от okan_vitaliy Посмотреть сообщение
    пока баг в прикрепленном файле не найду - не успокоюсь
    Постулат программиста: "каждая последняя ошибка в коде является предпоследней"

  38. #5715
    GAV
    GAV вне форума

    Регистрация
    23.02.2015
    Адрес
    Ярославль
    Возраст
    32
    Сообщений
    17
    Цитата Сообщение от okan_vitaliy Посмотреть сообщение
    Короче пока баг в прикрепленном файле не найду - не успокоюсь. Нарушается концепция программирования, когда начинаешь костыли вставлять.
    спросил знакомого спеца - он отправил читать эррату.
    >> Cortex-M3 LDRD with base in list may result in incorrect base register
    >> when interrupted or faulted

    короче, где-то в теле sprintf затесалась эта самая LDRD.

    лечится заменой компилятора или выравниванием стека на 16 перед вызовом sprintf

    void SysTick_Handler(void)
    {
    uint32_t oldSP = __get_MSP();
    __set_MSP(oldSP & 0xFFFFFFF0);
    sprintf(temp,"%05.1f",a);
    sprintf(temp,"%u",SystemCoreClock);
    a+=1.8753456;
    __set_MSP(oldSP);
    }

  39. #5716

    Регистрация
    27.12.2009
    Адрес
    Днепродзержинск, Украина
    Возраст
    43
    Сообщений
    281
    Записей в дневнике
    3
    Цитата Сообщение от GAV Посмотреть сообщение
    спросил знакомого спеца - он отправил читать эррату.
    >> Cortex-M3 LDRD with base in list may result in incorrect base register
    >> when interrupted or faulted

    короче, где-то в теле sprintf затесалась эта самая LDRD.

    лечится заменой компилятора или выравниванием стека на 16 перед вызовом sprintf

    void SysTick_Handler(void)
    {
    uint32_t oldSP = __get_MSP();
    __set_MSP(oldSP & 0xFFFFFFF0);
    sprintf(temp,"%05.1f",a);
    sprintf(temp,"%u",SystemCoreClock);
    a+=1.8753456;
    __set_MSP(oldSP);
    }
    Спасибо. В этом наверно и кроется проблема. Вставил сохранение стека в начале моей функции и восстановления в конце моей функции - усэ працюе. А вот если сразу перед спринтом и сразу после него , то выдает черти что. Причем такое впечатление, что спринт вообще не использует указатель вывода. Буфер остается нетронутым. Короче я че то очкую такую конструкцию применять. Повысил уровень оптимизации - вроде без этого костыля работает, иногда правда нулевой результат вываливает. При высокой оптимизации по времени и коду проект виснет. Короче нужно отдохнуть и бухнуть, что бы разгрузить голову. Короче..... ВСЕХ С 1 МАЯ. Счастья,Здоровья,Мира ВСЕМ!!!!!!!!!

  40. #5717

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от okan_vitaliy Посмотреть сообщение
    что спринт вообще не использует указатель вывода
    Я, как в воду смотрел..

  41. #5718

    Регистрация
    27.12.2009
    Адрес
    Днепродзержинск, Украина
    Возраст
    43
    Сообщений
    281
    Записей в дневнике
    3
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Я, как в воду смотрел..
    И не только в воду смотрел, но и....... Эта сцуко еще и по указателю при определенных условиях пишет очень длинные последовательности, короче больше чем буфер. В итоге хардфаулт. Я вообще че то теперь очкую по полной программе. Причем хард может вылететь через полчаса. Облазил инет и нашел на забугорном форуме у чела было похожее дело, но дело ничем не решилось. Ему сказали что спринтф в флоате тяжелая и трудная функция итд и типа пишите Кейлам. Посему вопрос - как прикрутить к кейлу гцц. Хочу попробовать другой компилятор.

  42. #5719

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от okan_vitaliy Посмотреть сообщение
    Хочу попробовать другой компилятор.
    А если проще: - самому сделать аналог sprintf (?), там и надо то делить/умножать и в "char" преобразовывать..... и не связываться с родным сишным....

  43. #5720

    Регистрация
    27.12.2009
    Адрес
    Днепродзержинск, Украина
    Возраст
    43
    Сообщений
    281
    Записей в дневнике
    3
    Цитата Сообщение от oleg70 Посмотреть сообщение
    А если проще: - самому сделать аналог sprintf (?), там и надо то делить/умножать и в "char" преобразовывать..... и не связываться с родным сишным....
    Да это можно, но хотелось все таки разобраться я или компилятор глючит. Проект уже вылизан на всех уровнях оптимизации, а вот спринтф гадит картину. Я его сцуку и запретами прерывания irq и fiq обтянул, а он гадит изнутри.
    В версии 5.14 можно менять компилятор, но как сделать так что бы его среда увидела - вот это вопрос. А аналог типа спринта облегченный есть в цли базефлигхта. Если уже ничего не получится, то либо его вставлю, либо сырцы спринта поищу. Советские люди просто так не сдаются.

+ Ответить в теме

Похожие темы

  1. Система стабилизации гиро+акселерометр
    от Фантомас в разделе Полеты по камере, телеметрия
    Ответов: 32
    Последнее сообщение: 25.01.2011, 14:47
  2. Продам Продам Клона Trex 450SEV2 + Аппаратура + Запчасти+ система стабилизации RTF
    от omegapraim в разделе Барахолка. Вертолеты
    Ответов: 1
    Последнее сообщение: 12.01.2011, 18:16
  3. Продам Трёхосевую систему стабилизации Turnigy V-Bar 600
    от avi@tor в разделе Барахолка. Аппаратура
    Ответов: 1
    Последнее сообщение: 08.11.2010, 13:02
  4. Продам Gaui система стабилизации GU365, дёшево.
    от avi@tor в разделе Барахолка. Вертолеты
    Ответов: 3
    Последнее сообщение: 03.08.2010, 11:13
  5. Системы стабилизации
    от max815 в разделе Фото и видеосъемка, системы стабилизации
    Ответов: 16
    Последнее сообщение: 11.03.2010, 03:14

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения