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

esaulenka

Свой
  • Постов

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

  • Посещение

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

    2

Весь контент esaulenka


  1. Ну вот и включение/выключение прерываний в коде этой тачлиб надо перенести на таймер 3. NVIC_Enable() / NVIC_Disable(). ... а, по-хорошему, выкинуть их г-нокод задержек и переписать без критических секций.
  2. Файлик STMTouch_Driver_um.chm Раздел STM32L1xx resources used Из прерывания SysTick'а они вызывают TSL_tim_ProcessIT(). Должны, во всяком случае. И, видимо, как-то некорректно работают с // SysTick enable/disable interrupt macros #define enableInterrupts() {SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk;} #define disableInterrupts() {SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk;} во всяком случае, каких-то других способов отключения таймера я сходу не нашёл. А вообще - покажите регистры SYSTICK'а после ошибки. Описание можно посмотреть на arm.com.
  3. А Вы, простите, сколько мостов спроектировали? Я Вам тоже открою секрет. Закон Ома открыт 192 года назад. Так что у нас тоже ничего принципиально не меняется второй век подряд.
  4. Работает, спасибо. Но правильное решение - это галка "Pre-run/Restart reset" на вкладке Startup. И почему я её столько времени не замечал...
  5. Аргументированно (с цитатами и толкованиями) - к сожалению, нет (не юрист совершенно). Но... Вот ещё человеческим языком: https://habr.com/post/80257/
  6. Сергей, я, видимо, невнятно написал. Прыжок на ResetHandler работает хорошо. А вот дальше без костыля в этом ResetHandler() asm volatile(" LDR r0, =_estack"); asm volatile(" MSR msp, r0"); ...отлаживаться неудобно... Собственно, вопрос: почему оно работало раньше и как это вернуть?
  7. То есть в даташите гадкие TI-шные инженеры спрятали figure 1 "SPI Slave Mode Timing Definition"? Или в reference manual'е не менее гадкие ST'шники убрали картинку "Data clock timing diagram" ? Сложнейшая задача "найди две картинки", не поспоришь...
  8. Здравствуйте, коллеги. Имеется win10, gnu arm eclipse (нынче gnu mcu eclipse), JLink, STM32F4xx В комплект gnu arm входят плагин для JLink'а и gdb. Всегда всё хорошо работало, но сейчас запускаю новый проект, и при запуске отладки указатель стека - нулевой. Где-то видел рекомендации "записывай руками pc и sp после старта отладчика". Запись pc так и работает (полностью автоматически, я ничего нигде не настраивал): Downloading 452 bytes @ address 0x08000000 - Verified OK ... Verifying flash [....................] Done. Writing register (PC = 0x080017b8) ... R0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000 R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000 R8 = 00000000, R9 = 00000000, R10= 00000000, R11= 00000000 R12= 00000000, R13= 00000000, MSP= 00000000, PSP= 00000000 R14(LR) = 00000000, R15(PC) = 080017B8 Но sp автоматически не записывается (и в старом проекте тоже не записывался, всё корректно работало). В таблице векторов указатель наличествует: 8000000: f8 ff 01 20 b9 17 00 08 5d 17 00 08 5d 17 00 08 но, судя по "Writing register (PC = 0x080017b8)", процессор туда и не смотрит...
  9. У меня два предложения. 1) поменьше думать за оптимизатор. this, не this.. Пока не доказано, что оно заметно влияет на производительность, заморачиваться не стоит. 2) Давать членам класса (да вообще, всему!) осмысленные имена, чтобы было понятно, что это, и откуда. Сам пишу без всяких this->, и очень страдаю, когда пишу self.бла-бла() :-)
  10. Ну окей. Оператор, значит оператор. Да хоть господь бог. Вы, главное, в публичных местах это никому не говорите. Спор без конкретных примеров, без документации, с одними лишь баечками прекращаю.
  11. Ну что, современные технологии творят чудеса. То, что модем САМ ходит на сервер, совсем не отменяет тот факт, что "внутри" оно работает как и прежде - список станций, уровни сигнала, и никаких GPS'ов и там более RTK.
  12. Так всё дело в том, что я читал. И у меня для Вас плохие новости. Вышка отдаёт только свои идентификаторы. По команде "получить координаты" модем собирает список id-шников БС, дополняет его уровнем сигнала для каждой БС, и идёт на сервер гугла (или свой супер-точный-сервер, в случае ublox'а). А там с помощью волшебной магии и трилатерации вычисляются координаты модема. Точность всего этого действа - десятки метров в городе, километры "в полях".
  13. Aner, простите, координаты ЧЕГО вам дают опсосы?
  14. Я извиняюсь, уезжал в микро-командировку. static const uint8_t reg1[] = { 0, // TEMP_CFG_REG _L5376|_XYZen, // CTRL_REG1 _HPFoff, // CTRL_REG2 _I1_WTM, // CTRL_REG3 _BDU|_FS4G, // CTRL_REG4 _FIFO_EN, // CTRL_REG5 0, // CTRL_REG6 0, // REFERENCE }; WriteReg (TEMP_CFG_REG, reg1); static const uint8_t reg2[] = { 0, // INT1_THS 0, // INT1_DURATION 0, // CLICK_CFG }; WriteReg (INT1_THS, reg2); WriteReg (INT1_CFG, 0); WriteReg (FIFO_CTRL_REG, _FIFO_BYPASS); WriteReg (FIFO_CTRL_REG, _FIFO_STREAM|(Accel.GetFifoSize()/6-1));
  15. libopencm3 + stm32f4

    libopencm3 для АЦП не использовал, но... 1) Константа ADC_SMPR_SMP_3CYC выбрана осознанно? 2) (некритично, но некрасиво) enable NVIC лучше делать в конце, когда всё настроено. 3) флажок статуса EOC сбрасывается самостоятельно, после чтения data register
  16. У нас в изделии LIS3DH используется как датчик наклона/перемещения. Какого-то заметного "дребезга" не видно. По температуре заметно плывёт, да. Если интересно, могу содержимое регистров рассказать. Правда, коллега мой, который это всё делал, решил, что встроенный фильтр - дрянь, и сделал свой. Это показывать не буду, извините.
  17. Мысли на уровне ".опой чую": - передатчик 1, пакеты 1 и 4. Изменился 1 байт данных, изменились [1] и [3] байты КС. - передатчик 2, пакеты 1 и 3. Полностью аналогично. - все остальные варианты - КС меняется значительно. Имхо, Сергей Борщ прав - это какие-то костыли для совместимости, и две двухбайтовые КС одна в другой. И _pv прав, это не настоящий CRC / Флетчер / что-то продвинутое. Там от смены одного бита всё переворачиваться должно, а мы этого не видим. И да, если это две КС, может прокатить халява - одна из них не проверяется. "Испорченные" посылки пробовали?
  18. Господа, у меня вопрос, раз уж тут собрались специалисты по скриптовым языкам. Есть железка, есть программа на Qt (моего авторства). Они обмениваются пакетами, в Qt-шной программе есть класс "пакет". Для тестов регулярно приходится писать логику вида "если получили пакет А, а перед этим в пакете Б был флажок, то через 100 миллисекунд отправить пакет В". Сейчас оно написано на C++ и скомпилировано с основной Qt-шной программой, для выбора нужного теста банально вызывается нужная функция. Вопрос: как бы вынести этот функционал наружу в скрипты? QtScript пробовал, как-то криво оно связывается с плюсовой частью...
  19. STM32F407 и USB с BULK

    Прекрасный совет! Но там совершенно адский USB-стек. Мухи, котлеты активно замешаны с индусским рисом и карри в единое трудноделимое нечто. Отрывать от него лишнее и подсовывать своё очень неудобно. Я делал на основе LibOpenCM3 - пишем дескриптор (да, предварительно надо покурить USB in Nutshell), инициализируем нужные endpoint'ы - и всё, готово, можно обмениваться данными.
  20. Меня смущает. Меня смущает неспособность господина DASM прочитать слово "inductor" на схеме (оно там есть. и не один раз). Как и вывод "написано CCap (очевидно, от MLCC первые две буквы отвалились) - значит, студенты делали".
  21. Как человек, который имеет небольшой опыт ковыряния прошивок - бросьте эту затею. Быстрее, проще (и интереснее - это ведь хобби-проект?) сделать заново, благо никаких ноу-хау в этой вашей железяке нету. Для начала, на этот процессор документация на английском есть? Читать её через гугл-транслейт с китайского - то ещё развлечение...
  22. Прошу заменять все Ваши сентенции "никому не нужен ..." на "мне не нужен". Спасибо.
  23. Спасибо, видел эту статью. Практическое применение я закончил на пункте "примените патч к компилятору". Cейчас оно в компиляторе от arm.com не работает, а искать приключения на ровном месте, собирая боевые проекты нетестированным компилятором очень не хочется. А вот атоллик не стесняются: GCC 6.3.1 20170215 + patches :-)
  24. Для этого нужно, как ни странно, в свойствах проекта (options -> project settings) выбрать соответствующий контроллер. Вам же внутрь 103-ей STM'ки надо прошивку залить?
  25. Передавать набор упакованных структур (и принимать такой же набор) - вполне себе рабочий метод организации обмена. Просто, быстро и читается довольно легко. Вот дальше работать с этими структурами - моветон, да (хотя, если дороже перекладывать туда-сюда - почему бы и нет?).
×
×
  • Создать...