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

messad_el

Новичок
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о messad_el

  • День рождения 12.08.1990

Контакты

  • ICQ
    Array

Информация

  • Город
    Array
  1. Спасибо гляну на досуге. А поповоду первых сообщений, спасибо что носом ткнули, это приведение float к float это остатки от предыдущих экспериментов, там раньше интовая прееменная была, недоглядел когда перделывал, перевод из попугаев в вольты, для меня как для человека который только недавно(совсем недавно) сел за МК и полез в АЦП было трудно сразу понять ибо ни где достаточно прозрачно не написано от чего эти попугаи, по поводу того что половину работы на хосте можно было сделать я знаю, но это пример и я специально всё запихнул сюда, а вдруг в какой-то задаче хоста вообще не будет, а нужно будет, цикл с нопами взять из сотен примеров. Тем не менее спасибо!
  2. И так я просто решил поделится примером. Так как очень сложно найти более менее толковые и близкие к жизни примеры на библиотеке libopencm3. Где бы АЦП юзался по человечески и результат бы переводился из попугаев в нормальные вольты или даже градусы. Так же мало толковых и рабочих примеров с USB HID. Я очень долго мучался с этими двумя темами аж целых две или три недели . И по этому результатом своей работы решил максимально поделиться. Проект представляет из себя программу для МК STM32f103 которая в режиме сканирования получает результат с трех инжектированных каналов АЦП(встроенного температурного датчика, встроенного источника опорного напряжения и ноги GPIO(то есть внешнего канала)) по прерыванию окончания преобразования. Данные полученые с этих каналов преобразуются в нормальные человеческие величины и засовываются в пакет USB HID когда это нужно хосту. Варганил это всё я на плате OLIMEX P-103 так что к ноге с которой я беру данные подключена кнопка "WakeUp", и при нажатии на неё там появляется 3.3v опорное напряжение на этой плате такое же(на сколько я понял тыкаясь тестером ибо в документации я это не уловил). Пример собирал из разных других примеров, в описании(коментарие в начала кода) они приведены может что-то сделал и не совсем разумно, но для общего понимания мне кажется пойдёт. Прилагаю так же архив с проектом, собирал всё под линуксом без использования IDE(только Qt Creator как редакторо кода), но я думаю не сложно будет как надо и пово что надо. Так же в каталоге "prot_bho" програмка для чтения моих пакетов из железки под linux написана с использованием libusb, сварганил её на скорую руку из чужой утили так что не судите строгоadc_usb.zip. Надеюсь это кому-то принесёт пользу.
  3. Всё тему можно закрывать. Как всегда дело было не в бабине, просто я сидел в кабине. Хостовая программа была написана криво. Всё замечательно работает. Теперь отправлюсь дальше на штурм АЦП.
  4. Доброго времени суток товарищи! Теперь по теме. Пытаюсь заставить stm32 f103, а точнее отладочную плату OLIMEX P-103, общатсья с хостом по hid'у. С великой и ужасной spl всё работает, но мне хотелось бы разобратся с libopencm3 т.к. c ней работать гораздо приятнее и удобнее. Но вот беда гугл говорит мне что с моей проблемой и вообще с какими-либо проблемами ни-кто не сталкивался, как-будто ни кто её не использует либо с ней так всё хорошо что ни у кого нет проблем. Собрал из примеров небольшой проект, всё сделано по образу и подобию. Пример 1 Пример 2 И конечно же.. Последний, третий пример стал основным донором кода. В неизменённом варианте он работоспособен но там буфер в конечную точку записывается по прерыванию sys_tick_handler, что для меня не приемлемо. Я в своём коде тоже могу из любого места записать этот буфер и он считается, но хотелось бы это делать в ответ на реквест из хоста. Вот мой код: Вот для конечной точки назначается коллбек: usbd_ep_setup(dev, ENDPOINT_ADDRESS_OUT, USB_ENDPOINT_ATTR_INTERRUPT, 8, data_rx); Но он никогда не вызывается вообще! Я в нём пробовал для контроля зажигать светодиод, ноль реакции! Хотя в примерах сделанно именно так разногласий с документацией библиотеки я не увидел. Но программа которая на хосту пытается что-либо прочесть ни как его не заводит.
×
×
  • Создать...