Ардупилот на платах OpenPilot Revolution / RevoMini (записей: 1756)

  • Аватар профиля An_private An_private в 6 г., 11 мес. назад

    Ага.HAL_RC_INPUT=

    0 - всё по старому

    1 - после включения ch3=900, ch15=256, остальные 0. При подаче SBUS ch3=900, ch11=54611, ch12=1, ch15=274, остальные 1514

    2 - после включения ch3=900, ch15=512, остальные 0. При подаче SBUS никакой реакции

    3 - после включения ch3=900, ch15=768, остальные 0. При подаче SBUS никакой реакции

    4 - после включения ch3=900, ch15=1024, остальные 0. При подаче SBUS ch11 непрерывно инкрементируется примерно на 700 единиц в секунду, ch12 инкрементируется в момент переполнения ch11, ch15=1042, остальные каналы 1514 (как и должны, по всем каналам идёт 1024). После снятия SBUS ch9=900, ch11/12 тикать перестают.

    Дальше цифры пробовать? :)

    Уже по этим наблюдениям видно, что на старший байт 15-го канала каким-то образом накладывается тот самый HAL_RC_INPUT и на старший байт 11-го канала и младший байт 12-го канала накладывается какой-то счётчик.

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 11 мес. назад
    [2017-06-01 06:32:01] anprivate писал(а): двумя постами выше

    ну мало ли куда оно там еще ломится. Лучше перебдеть.

    [2017-06-01 07:01:10] anprivate писал(а): 0 - всё по старому

    0 - работает автовыбор, отличные от нуля значения задают модуль, используемый для входа. 1 и 2 можно и  не пробовать было, номер инпута SBUS_UART1 эт 3 или 4.

    Остальные наблюдения - загадка, массив резервируется на 20 каналов. Вечером буду ардуину прилепливать

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 11 мес. назад

    Все, поймал виновника - массив overrides был размером 8, а проверялся по всем возможным каналам. Пересобирается.

    UPD. готово

  • Аватар профиля An_private An_private в 6 г., 11 мес. назад

    Отлично, наложения ушли :) А вот сход с ума при ROLL в упор - остался :)

    Сейчас проверю еще с ардуинкой.

  • Аватар профиля An_private An_private в 6 г., 11 мес. назад

    Coool ! С ардуинкой тоже наблюдается :) Эффект есть при установке первого канала ровно на 1807 :roll: При этом на выходе в mission planner должно быть 2003? а в реальности всё просто сходит с ума. Очевидно, что проблема связана с некорректным определением стартового байта - при таком значении последовательность выглядит вот так:

    0x0F,0x0F,0x07,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x04,0x20,0x00,0x01,0x08,0x40,0x00,0x02,0x10,0x80,0x00,0x00

    Похоже декодер принимает ВТОРОЙ 0x0f за начало последовательности и всё сходит с ума.

     

  • Аватар профиля An_private An_private в 6 г., 11 мес. назад

    Да, точно. То есть если младший байт первого канала равен 0F, то декодер сходит с ума. 060F, 050F - всё это сводит декодер с ума.

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 11 мес. назад

    Хм, странно - у декодера есть синхронизация и по времени, и по длинне пакета, так что со второго байта ну никак... Сейчас эту последовательность посмотрю в деле.

    UPD. после успешной обработки пакета счетчик байтов не сбрасывался. Также сделал временнЫе ворота поуже - 3.5мс вместо 5,  пересобрал, можно проверять.

  • Аватар профиля An_private An_private в 6 г., 11 мес. назад

    Вообще перестал что-либо получать :)

     

  • Аватар профиля An_private An_private в 6 г., 11 мес. назад

    А, нет. Принимает один пакет и всё, больше ничего не принимает.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 11 мес. назад

    ну вот же ж ведь... и дался этот SBUS :)

    Поднял время до 4мс, пересобрал, выложил.

  • Аватар профиля An_private An_private в 6 г., 11 мес. назад

    Не, то же самое - видно, что после подключения он корректно ловит один фрейм sbus, показывает значения и дальше уже ничего не декодирует.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 11 мес. назад

    Вообще забавно, и похоже таки ардуину цеплять придется.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад

    пока боролся с SBUS - пришла мысЕль. Пока делал ее - попалась статья в тему. В результате - анонс :)

    • для выходов на моторы компенсируется неточность установки частоты таймером
    • добавлен отчет о исползуемой памяти  - кучи и стекам
    • выводится отчет о ошибках шины I2C
    • попытка уменьшить потребление и шум, добавив остановку процессора во время безделья на WFE, TIMER6 используется для пробуждения каждую микросекунду
    • длительные операции вынесены из обработчиков прерываний в низкоприоритетный обработчик завершения ввода-вывода - IO_Completion level
    •  добавлена поддержка Clock Security System - если кварц останавливается (или отваливается) в воздухе то происходит переход на внутренний генератор.
    • добавлен обработчик boardEmergencyHandler который будет вызван при любом аппаратном сбое или при Panic() перед остановкойt - например для выпуска парашюта

    Пока на отладке, скоро будет.

     

  • Аватар профиля m--s s s6 пунктов в 6 г., 10 мес. назад

    А магические -O0 ещё нужны?

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 10 мес. назад
    [2017-06-02 12:33:46] m-s писал(а): А магические -O0 ещё нужны?

    в тех местах где нужны они есть принудительно, есть также магические -O2 в некоторых других местах :)

← Форум группы   Все форумы К последней записи
Постов на странице:

Вы автоматически вступите в эту группу, когда ответите в теме.

Добавить ответ:

-
Рейтинг@Mail.ru