Jump to content

    

paskal

Свой
  • Content Count

    352
  • Joined

  • Last visited

Community Reputation

0 Обычный

About paskal

  • Rank
    Местный
  • Birthday 12/31/1969

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Тула
  1. А можно подробнее как завершать поток с использованием WaitForMultipleObjects ?
  2. Ну я и посылал через SetEvent. Ничего не произошло. И я поискал информацию - выходит и не должно. Пока поток спит в WaitForSingleObject, сигнальное состояние нельзя установить. Заколдованный круг.
  3. Добрый день! Пишу программу для асинхронного приема в ком порт. Прием в целом идет успешно, но возникает глюк при смене порта. То есть при асинхронном ожидании приема, порт закрывается, открывается другой, создается новый поток. Ну в общем все действия которые были с предыдущим портом. В этот момент и возникает дефект. Эксперименты и отладка показали что проблема возникла от того что поток висит в несигнальном состоянии после вызова WaitForSingleObject. Из за этого поток не завершается, и по цепочке идут другие ошибки. Итак вопрос. Как можно принудительно завершить ожидание по WaitForSingleObject?
  4. Осваиваем MCU CH551 с USB по 13 р.

    Нашелся на сабж даташит на инглише https://github.com/Blinkinlabs/ch554_sdcc/tree/master/documentation
  5. Цитата(Alex11 @ Oct 13 2017, 00:30) У меня нашелся в помойке 6.10А. Там 40МБ, если запаковать. В письмо не полезет. Есть куда кинуть? Очень хорошо! Попробуйте, например, через бесплатный хостинг https://ru.files.fm/ Заранее спасибо
  6. Цитата(megajohn @ Oct 12 2017, 20:45) извините, но вы не рассказали чем вам 7ой и 8ой не угодили. Они же должны же открыть шестую версию. Нет, не должны. С 7-й версии сильно поменялся синтаксис. Те исходники которые у нас есть, эта версия не компилирует.
  7. Цитата(jcxz @ Oct 12 2017, 20:04) Посмотрите на местном FTP. Я именно оттуда взял пятый. Шестого там нет.
  8. На работе возникла потребность поднять старый проект, который писали другие люди, давно уволившиеся. Проект 2002 года, в наличии только исходники и прошивка. Написан как удалось выяснить в IAR EW8051, версия предположительно до 7-й. Удалось найти EW8051-552B, но по дате это более старый, нужен шестой. Если у кого завалялся, поделитесь. Сойдет с любыми ограничениями, по коду по времени. Или где искать намекните.
  9. Занимаюсь моделированием устройства которое обменивается с ПК по определенному протоколу. Устройство на МК атмега128, но это в данном случае не важно. Еще есть прикладная программа для ПК которая обменивается с "железным устройством". Чтоб задействовать эту программу в симуляции, создаю виртуальную пару COM портов, у которых приемники и передатчики попарно соединены. В Протеусе вывожу uart на COMPIM, назначаю COMPIM на один виртуальный COM, а другой виртуальный COM открываю в программе. Теперь мой МК и программа виртуально соединены. Но работает это только на один раз запуска симуляции. Если остановить симуляцию и запустить снова, связи не будет. Если выйти из Протеуса и зайти снова - опять заработает на один раз. Что можно сделать?
  10. Цитата(@Ark @ Jun 6 2017, 21:36) И зачем Вам 3 Мбит/c, если достаточно 921600, на которой точно все будет работать? Ну попробую на 921600, если смогу хитрый кварц найти.
  11. Цитата(@Ark @ Jun 6 2017, 02:32) Вы, для начала, правильно сформулируйте задачу. Что такое "1 байт с интервалами от 10 до 20 мкс"? На стандартной скорости 921600 бит/сек передача одного байта в формате 8N1 занимает не более 11 мкс. Вам достаточно или нет? Вообще то я все достаточно описал. Скорость я устанавливаю 3 Мбит/с (почему вы решили что 921600?). Интервал между байтами с которым я экспериментирую, 25 мкс. Все с большим запасом умещается. Тем более что я все это контролирую осциллографом. Ладно, похоже Genadi Zawidowski дело подсказал, буду в этом направлении двигаться.
  12. Цитата(Огурцов @ Jun 6 2017, 00:31) а вы под чем сидите ? под xp было 920k максимально, под семёркой вообще 128k Семерка. А откуда для виртуального порта ограничение 128k? Ничего такого не слышал.
  13. Клон это или нет, но он работает если чуть снизить скорость. И потом, клоны делали на FT232R, а у меня FT232B на который клонов не замечено.
  14. Нужно от МК передавать большие объемы данных в ПК. Скорость - 1 байт с интервалами от 10 до 20 мкс. Направление только от устройства в ПК. Для связи настраиваю UART микроконтроллера на передачу со скоростью 3 Мбит. Далее переходник UART-USB (FT232) для ввода в компьютер, а там софт работает через виртуальный COM порт. Уже при интервале 25 мкс теряется примерно 0.1% данных. При интервале 30 мкс все стабильно. То есть компьютер не успевает обрабатывать всего 40 кБ/с! Пробовал увеличивать размер приемного буфера - не помогло. Какие будут идеи?
  15. Пытался сделать сабж, работая с командной строки: Кодvoid f() { } void (*pf)() = &f; int main() {   pf(); } Компилирую. Ввожу с командной строки: arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -c main.cpp - все ОК Затем линкую: arm-none-eabi-ld -Ttext=0x8000000 -Tdata=0x20000000 -o main.elf startup.o main.o - сообщает Цитатаundefined reference to '__aeabi_unwind_cpp_pr0' Другие программы у меня таим способом нормально компилируются. Проблема только когда вызываю функцию через указатель. Что это значит? Как этого избежать?