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

esaulenka

Свой
  • Постов

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

  • Посещение

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

    2

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


  1. STM32F2: printf (float)

    Да, действительно. Почему-то был уверен, что у printf работает только через стек (из-за переменного числа аргументов). Ан нет, всё отлично в регистры лезет, если аргументов немного. Век живи...
  2. STM32F2: printf (float)

    А куда ж эти цифирки-то кладутся, если не в стек?!
  3. ... применять это поделие надо вместе с отключаемыми трансиверами (Георгий их уже в первом посте перечислил). Но ремап, соглашусь, будет лучше. И трансиверы можно обычные использовать, без enable.
  4. Если эта структура bme280 одна, и размножать их не планируется, предлагаю забыть слово "указатель", раз оно вызывает сложности. Обращаться непосредственно к полям первоначальной структуры. А вообще, правильно заданный вопрос - это хороший тон. Правильно заданный - это минимальный пример, который показывает проблему. "Я сделал глобальную структуру A, указатель pA, присваиваю в функции init() pA = &A, потом пользуюсь в функции doItNow() pA->var, и у возникает вот такая ошибка компиляции".
  5. Как по мне, куда больший троллинг - предложения си-шарпа, явы, каких-то EEPROM/Flash/CPLD. Тут нужен любой контроллер. Лю-бой. Если автора этой темы учили PIC18Fxxxx - пусть на нём и делает. Умеет Core-i7 - пусть делает на i7. Да уж куда мне. Когда мне год назад понадобилось измерять частоту (десяток-другой Гц), я взял и сделал. Без электроникса, увы - тут последние годы флуда ну совсем много стало...
  6. Вот интересно, кто-нибудь, кроме Plain, условия задачки читал? Ни страдания на изиэлектрониксе, ни AN592 не подходят к задачке "измерить сигнал до 65 Гц с точностью 0.1 Гц". Хотя мы всех условий не знаем, если обновлять показания можно раз в минуту, то прокатит.
  7. Вбил в поиск по хелпу кейла слово "timezone" и получил неутешительный ответ: Так что пишите свои костыли, раз уж надо...
  8. Крайне нежелательно мыслить исключительно догмами. Правильный ответ - во втором уже сообщении, "где-то можно, где-то нет". Если понимать, что происходит и представлять себе последствия, можно делать всё, что нужно. Прерывания в современных контроллерах (читай "cortex-M") - вполне себе недо-операционка. С многими уровнями вложенности задач, если надо. USB, даже 2.0, даже в 2016 году ещё поискать надо. В большинстве контроллеров бесплатно (без дополнительного PHY) до сих пор full-speed. И его до сих пор хватает для очень многих изделий. А вот совет "из г-на и палок быстренько сделайте свой велосипед" может выйти боком, когда через полгода у этого велосипеда окажется 13 колёс.
  9. Если шины действительно медленные, можно вообще на двух диодах и резисторе собрать логическое "И". А в мультиплексор на CAN-H, CAN-L я не верю. Хотя если помех и криворуких монтажников там не будет - почему б и нет?
  10. Я именно такую штуку делал. На libopencm3. Главное - погуглить usb composite device, понять, как создать нужный дескриптор, и склеить два примера. Ну или "готовое" можно взять: Кавычки у слова "готовое" - не спроста. Шаг в сторону, и сразу всё ломается.
  11. Nucleo-F401RE + TIM

    А где GPIO_PinAFConfig() ? На каждую ножку подключено несколько периферийных модулей, и при инициализации надо выбрать нужный. PS Почему TIM1 при этом работает, загадка. По идее, не должен..
  12. Nucleo-F401RE + TIM

    Советик: при использовании SPL-ных мегаструктур всегда в обязательном порядке их инициализировать. Там специальные функции есть, типа TIM_ICStructInit(...), TIM_TimeBaseStructInit(...). Какой-нибудь пропущенный член структуры, забитый мусором, потом "подклеивается" к корректным данным и записывается в регистр. Отладка становится крайне занимательной. Ну или вообще этой графоманией не пользоваться. Первые шаги в эту сторону в Вашем коде уже видно :-)
  13. Если эмулировать не спутники, а сам ublox, задача упрощается на несколько порядков. Только устройство надо будет слегка испортить. Я делать не возьмусь, я просто посоветовать вылез. PS а почему тахограф? Пару лет назад в НКМ Геосы стояли, а не ublox. Что-то поменялось?
  14. Не знаю. openOCD - это надстройка над gdb. Если к этому Dev-C++ прикручивается gdb (из официального сайта это непонятно), то и под контроллер отладка заработает. После подъема всяких "железных" вещей - да, логи наше всё. А в состоянии "ну вообще ничего не работает" погулять по шагам будет очень полезно.
  15. Ещё раз посоветую настроить отладчик. Жизнь станет гораздо удобнее. Инструкция "как скрутить gdb, openocd и эклипс" есть здесь: http://gnuarmeclipse.github.io/debug/openocd/ Бинарники под виндовс там есть готовые. Я проверял, всё работает (год назад там не работал SWO, так что я вернулся обратно на J-Link, благо отладчик у меня - копия джейлинка. И, блин, из документации непонятно, починили это, или нет).
  16. Извиняюсь за некрофилию, но вычисления в первом посте куда больше похожи на правду, чем эти вот про формулу-1. Почему-то сравниваются пиковое значение при ускорении (кстати, что забавно, из-за меньшего хода ускорение поршня в двигателе хонда Ф1 почти такое же, как и в 21083) и среднее от давления газов. Из соображений "на пальцах" максимальные ускорения поршня - это в.м.т. и н.м.т., максимальное давление газов - тоже около в.м.т. PS печальная ветка. Отдельным здесь присутствующим не помешало б училище по ДВС. Хотя б на тройку. А то про Ома знают, про Кернигана-Ричи что-то где-то слышали, а дальше глушь и темнота...
  17. Предлагаю 1) разобраться, какой же светодиод загорается 2) временно закомментировать инициализацию клоков (оно и так работать будет, только небыстро) 3) временно закомментировать инициализацию HAL'а (а лучше его вообще не использовать. Если там что-то не заработает, на раскопки уйдёт куда больше времени, чем на написание своего велосипеда с нужным для конкретной задачи диаметром колёс). 4) прикрутить отладчик (гуглить "openocd gdb stm32")
  18. На самом деле, ходило оно по пустому TIM5_IRQHandler(). Просто в startupXXX.s есть особая ассемблерная магия - все обработчики прерываний объявлены с одним и тем же телом - "B ." (оно же - бесконечный цикл). Так что да, при объявлении обработчиков надо быть очень внимательным, при опечатках линкер без каких-либо предупреждений подсунет "пустышку".
  19. Повторный вход в обработчик подтверждаю, есть такое. Правда, я лечил просто переносом сброса наверх - дополнительная проверка не нужна.
  20. сниффер RFID

    Здравствуйте. Хочется "посмотреть" обмен низкочастотных (125 или 134 кГц) RFID устройств. Передавать ничего не надо, считыватель и метка уже готовые, осталось только разобраться, что же между ними происходит :-) Я правильно понимаю, что мне стоит начинать с приёмной катушки (как оно считается? просто как "индуктивность без сердечника"?), фильтра (на сколько?..), детектора и компаратора (порог придётся настраивать, видимо). Что-то в духе приёмной части http://www.serasidis.gr/circuits/RFID_read...RFID_reader.htm. Принимать для начала можно и на осциллограф. И сразу чайницкий вопрос: почему эта конструкция не "глохнет" от 50 Гц из розетки? Вроде б должна... Update. Здесь http://forums.parallax.com/discussion/1058...est-rfid-reader пишут, что глубина модуляции маленькая совсем, руками подкрутить подстроечный резистор никак не выйдет... Соответственно, надо как-то автоматически подстраивать...
  21. STM32F0xxx USB без HAL

    Сергей, а какие претензии-то? libopencm3 - действительно, весьма приятная библиотека. Тот же USB написан значительно проще и понятнее, чем в обоих вариантах ST'шных библиотек. И слоёв там меньше, и профили не засунуты в сердину библиотеки. В общем, я тоже рекомендую, даже с учётом отсутствия там STM32F07x "из коробки"
  22. Точно! К этой вот штуке http://ru.telma.com/produits/fonctionnement надо примотать изолентой реле с базара. Самое лучшее решение. Отличная плавная регулировка, 100% надёжность!
  23. Код выглядит нормально. Разве что, не очень понятно, что содержится в rcc_Clocks. Можно легко и просто испортить дефайны, чтобы там оказалось что-то не то. Единственное замечание: у STM'ок есть кэширование регистррв таймера (в т.ч. ARR). Чтобы принудительно его обновить, надо сделать TIMx->EGR = TIM_EGR_UG; PS дурацкий вопрос: это точно STM32F103 ? Не китаец? ;-)
  24. В RTC у STMа есть особенность, что они довольно критичны к качеству кварца. Точнее, к самому кварцу, его обвязке (в лице двух конденсаторов) и монтажу (количеству флюса вокруг). В погоне за микропотреблением узел получился весьма нежным. Можно вывести на ногу CLKOUT частоту кварца (подробности - в reference manual) и проверить осциллографом, что оно работает стабильно. Напрямую в ноги часового кварца тыкать бесполезно - сразу же останавливается. Очень похоже, что кварц постоянно останавливается-запускается.
  25. Так а где виснет-то?! Отключить ватчдог, смоделировать, остановить в отладчике - не? А vbus (оно же "отрубание шнура") чудесно видно на соотв. ноге. Просто как gpio.
×
×
  • Создать...