Перейти к содержанию
    

ДЕЙЛ

Свой
  • Постов

    728
  • Зарегистрирован

  • Посещение

  • Победитель дней

    5

Весь контент ДЕЙЛ


  1. Возможно. Навскидку накидал. Вопрос не в си, а в том, как в делфи обратиться к элементу массива через указатель на этот массив.
  2. Сделал вот так: procedure DataGraphAdd(val : Int64; DateTime: TDateTime); var pDGTmp : pDataGraph; begin pDGTmp := FormGraph.pDG; inc(pDGTmp, FormGraph.DGiAct); pDGTmp^.val := val; pDGTmp^.dt := DateTime; inc(FormGraph.DGiAct); FormGraph.DGiAct := FormGraph.DGiAct and (MAX_CNT_DG - 1); end; Туповато, но лучше, чем передача массива в функции.
  3. Есть указатель pVal : ^TType; запись осуществляется так pVal := @Buf; //инициализация pVal^ := XX; //нулевая позиция inc(pVal); pVal^ := YY; //первая позиция inc(pVal); pVal^ := ZZ; //вторая позиция Как правильно сдвинуть указатель на вторую позицию сразу после инициализации? В сети ответа пока не нашёл. В си аналогичный код выглядел бы так: TType* pVal; pVal = &Buf[0]; *(pVal[2]) = ZZ; или *(pVal + 2*sizeof(TType)) = ZZ;
  4. Да. Изменение на SF12 увеличило в разы дальность, но при этом закономерно уменьшилась скорость передачи до десятков байт в секунду. На открытой местности пока не тестировал.
  5. Обвязка не моя. Её сделали на заводе в виде модуля E22. Полагаю, что там указан средний ток, а я имею ввиду пиковый в момент передачи пакета. По осциллограмме можно увидеть, что средний ток и будет примерно 100...120 мА. Т.е. с токами всё нормально, а вот вопрос увеличения дальности приёма-передачи пока остался открытым.
  6. Проверяли ? Проверил. Вижу, что при -9dBm потребляемый ток 200мА, при 22dBm потребление 400мА, т.е. потребляемая мощность в моменты передачи пакетов 1 и 2 Вт соответственно. Ток измеряется на резисторе 0.5 Ом.
  7. Это максимум, который можно задавать в настройках МК. Далее до 30 dBm прибавляет обвязка в составе модуля E22 900M30S. Можно поподробнее? Какие тут тонкости могут быть?
  8. В документации на данный модуль сказано, что максимальная дальность связи 10-12 километров. У меня дальше 400-500 метров связь в поле пропадает. Перепробовал все настройки в разных комбинациях, но не дотянул даже до 10% от заявленного расстояния. Питание модуля от USB (Power bank). Настройки на скрине. Антенны соответствуют рабочей частоте. Какие тонкости нужно учитывать для увеличения расстояния связи?
  9. Защита для экспериментов на столе. В месте установки плюс и минус останутся на своих местах.
  10. ExpressLRS

    Какие преимущества даёт этот проект? У меня есть модуль E22 + МК, могу менять все параметры, отправлять и принимать пакеты. Что может дать ExpressLRS?
  11. ExpressLRS

    Т.е. это прошивки для конкретных пар МК+радиомодуль?
  12. ExpressLRS

    Кто имел дело с этим словом? Если это протокол, то где найти документ с его описанием? Гугл отправляет на разные сайты вроде этого https://flymod.net/txt/expresslrs_information В документации нет никакого описания, а только инструкции по прошивке приёмников и передатчиков. Есть исходники на GitHub, но там сотня файлов. Так понимаю, что это исходники прошивки для конкретных устройств. С чего нужно начинать изучение этой темы? У меня есть МК и модуль E22, работающий по SPI. Можно ли как-то прикрутить сюда исходники с https://github.com/ExpressLRS/ExpressLRS ?
  13. Такое зависание возможно в том случае, если используется com0com и второй виртуальный порт никуда не подключен.
  14. Правильно поставленный вопрос существенно ускоряет получение ответа. Студенты тоже этому должны учиться.
  15. Нет, регистр там 8битный. Было неправильное представление о работе SPI. Результат будет готов сразу после записи последнего байта, после чего можно вычитывать. Т.е. для начала чтения результата нужно протолкнуть ещё один NOP и выполнить чтение выдвинутого результата.
  16. Общий коллектор даёт усиление только по току. по напряжению коэффициент усиления чуть меньше единицы. Переключение диодов меняет параметры источников тока на транзисторах Q3 и Q5. Дальше вспоминать схемотехнику лень. Почти 20 лет прошло.
  17. Второй пункт порадовал. Там наверняка can-шина и будет очень весело разбирать протокол, когда хотя бы два мастера будут делить шину.
  18. Вопрос закрыт. Оказалось, что в данном модуле регистр SPI 16битный и вычитывать нужно 2 байта.
  19. Синхронизация бита по переднему фронту тактирующего импульса. Байт по SPI отправлен, флаг выставлен, далее уже можно поднимать ногу. Сделал задержку перед подъёмом NSS - результат не поменялся.
  20. Приветствую. Второй день пытаюсь достучаться до данного модуля. Судя по описанию состояния регистров после рестарта, в них должны быть ненулевые значения, которые можно прочитать по SPI. Пытаюсь это сделать, но результат чтения любого регистра 0xAA (Вывод MISO). Почему так? Руководство к модулю Описание команд Анализатор показывает наглядно, что модуль отвечает, но как-то не так. Какие могу быть тонкости при инициализации, чтобы нормально его запустить? В данном случае пытаюсь прочитать регистр 0x0741 Отправляю 0x1D (команда чтения), затем адрес регистра 0x4107 старшим байтом вперёд и назад, затем последний байт пустой, но результат всегда один, а должно быть число 0x24, судя по описанию состояния регистров после старта.
  21. Здесь уже сказали, что резистор нужен для устранения звона по фронтам. Этот звон теоретически может иметь амплитуду в 2 раза больше логического уровня, что может пробить затвор внутреннего транзистора. Для полевых транзисторов (10-20 Ампер) ставят резисторы с номиналом 10-20 Ом. Полагаю, что тут нужно 1-2 Ома. В любом случае нужно посмотреть осциллографом на разных частотах.
  22. иногда скобки ставят для возможности объявления переменной в середине функции, если это улучшит удобство чтения кода: код; код; код; код; { int tmp = XXX; код; код; } //в этом месте переменная tmp не видна; код;
  23. В пошаговой отладке в железе ничего не виснет. При наличии прошивки отладка возвращается в точку останова в начало кода загрузчика. При отсутствии прошивки отладчик куда-то убегает и никогда не возвращается в начало загрузчика.
  24. Сторожевой таймер включается перед светодиодом. Если светодиод включился, то момент включения WDT пройден. Далее должен циклически перезапускаться и моргать.
×
×
  • Создать...