- 16 кнопок в одном выводе, прошу прощения, если уже было. - maleon(02.09.2019 15:50, MCU, ссылка, картинка, полностью)
- Передать голос по RS-485. Как синхронизироваться? Alt@ir(933 знак., 06.09.2019 07:04, MCU, полностью)
- Заранее генерируем избыточность. Evgeny_CD(554 знак., 06.09.2019 20:24)
- Задачу решали применением Michael_75(443 знак., 06.09.2019 16:36)
- Вы не уточнили: у вас выборки приходят монотонно в порт или пакетами? Если первое - то дело плевое: не синхронизируйте вообще. Делайте апсемплинг, фильтрацию, децимацию по тактовой ЦАП. lloyd(258 знак., 06.09.2019 16:07 - 16:12)
- А почему не посмотреть как сделано VoIP. И сделать аналогично voice over RS-485. - kaf1(06.09.2019 11:41)
- Или совсем "в лоб" - купить MEMS-генераторы на 1,5 PPM (сильно подешевели в последнее время) и хрен с ним, с потерей отсчета раз в полчаса. - Сидоргек(06.09.2019 11:06)
- А так: На приёмной стороне буфер миллисекунд на 100, звук воспроизводим с задержкой на полбуфера. Ессно, через некоторое время буфер переполнится или опустошится. Что бы этого не происходило, во время пауз добавляем или убираем скоко-то отсчетов, Сидоргек(149 знак., 06.09.2019 11:02)
- А в чем проблема не понимаю, есть лишнее данное - дропайте, есть недостающее - подавайте предыдущее. Так, скидыванием по одной выборке, вы звук вообще не исказите. - Ralex(06.09.2019 10:46)
- Никак не синхронизируйтесь. Используйте преобразователь частот дискретизации. Готовые чипы тут: Nikolay_Po(840 знак., 06.09.2019 10:42, ссылка)
- Стандартное решение - передавать заведомо быстрей, чем нужно. На приемной стороне буфер из двух половин, пока из одной воспроизводится, другая заполняется из линии. Как только воспроизведено все, половинки меняются местами. - Yurasvs(06.09.2019 08:52)
- У меня звук идет от аудиокодека, кодек подключен по I2S и он жестко привязан к тактовой частоте опорного генератора, т.е. посередине менять не могу, только сам опорный генератор. RS-485 принципиален. - Alt@ir(06.09.2019 08:09)
- Не понимаю в чем проблема. Принял байт - вывел в ЦАП. УАРТы сами между собой синхронизуются (за счет стопового бита). Прерывание по каждому байту для м AlexBi_(28 знак., 06.09.2019 08:09,
)
- Если сэмл лишний - выкинуть, если не хватает - скопировать последний. На 8 бит звуке не думаю, что будет резать слух. 1 сэмл/сек на 8 кГц будет при расхождении генераторов ±0.000125 . Можете с аппроксимацией заморочиться. - Dingo(06.09.2019 07:38)
- Делал селекторную связь RS485/Ethernet. Качество отличное. Буфер на полсекунды звука на приеме. Делится на 4 секции. Воспроизводим при заполнении 2-х секций. Если к следующему воспроизведению занята всего одна, то чуть медленее темп. Три - driver_gv(342 знак., 06.09.2019 07:36)
- Какие существуют принципиальные/фундаментальные ограничения на применение RTOS? Peter_M(1478 знак., 14.08.2019 17:30, MCU, полностью)
- ёмоё, ну откуда вы взяли этот маразм, что у RTOS скорость реакции напрямую зависит от частоты систика? Уже в который раз на него натыкаюсь в интернетах. lloyd(240 знак., 03.09.2019 15:06)
- Если ресурсов хватает, то нет таких границ. Быстрые короткие обработчики нужно делать в прерываниях хоть с, хоть без ртос. - =AlexD=(03.09.2019 09:03)
- Если ты готов реализовать алгоритм работы устройства целиком (в одиночку или коллективом) нахуй все РТОС, если нет, то это самое оно. - Codavr(02.09.2019 19:33 - 19:36)
- Если разработку будут вести несколько человек, то однозначно надо использовать RTOS при таких условиях. Что касается вашей задачи - Задача с требуемым периодом обработки просто висит на событии. Событие устанавливается в прерывании таймера с il-2(189 знак., 15.08.2019 18:43)
- У нас вот цикл 125 мкс, без rtos исторически так сложилось... но очень бы хотелось, потому как долгие неприоритетные задачи сейчас приходится "размазывать" руками - sav6622(14.08.2019 18:02)
- В чём проблема размазать? Вроде бы protothreads делает это довольно простой задачей. - SciFi(14.08.2019 18:07)
- Анализировал я их для применения, но чего то так и не дошел, непомню что остановило. Надо бы вернуться взвесить снова. - sav6622(14.08.2019 18:35)
- Кооперативную не хотите попробовать? Написана на С, без ассемблера - =AK=(02.09.2019 05:37, ссылка)
- 1) Гм, если размер int не равен разрядности процессора - можно огрести забавных глюков. LightElf(230 знак., 02.09.2019 17:32)
- Я с 8-битными Ардунками пользовал, глюков не заметил. =AK=(112 знак., 03.09.2019 00:17)
- 1) просто везло или не заметили. У вас счётчик задержки модифицируется и основной задачей и обработчиком прерывания, без каких-либо средств обеспечения атомарности LightElf(67 знак., 03.09.2019 01:11)
- Под Ардуиной я даже прерывания не использую, задержки сделаны на основе millis() - =AK=(03.09.2019 02:13, ссылка)
- Если б я еще знал, что такое millis(). Вообще, использовать setjmp/longjmp нужно аккуратно и вдумчиво, там граблей разложено много. Конкретно у вас есть конструкция res = setjmp(bla-bla), которая, ЕМНИП, с точки зрения стандарта есть Undefined LightElf(724 знак., 03.09.2019 09:54 - 10:20, ссылка)
- millis(0 - стандартная функция Ардуино, возвращает uint32_t, кол-во миллисекунд с момента старта. Об атомарности позаботились в ней. =AK=(2209 знак., 03.09.2019 11:24 - 11:51)
- Кстати, да. Но допилить вроде бы несложно. - SciFi(03.09.2019 10:39)
- Это да. Но там еще грабли есть со стеком. Суть, кагбэ, в том, что вообще говоря никто не гарантирует, что выпрыгнув однажды из функции по longjmp можно будет в нее потом запрыгнуть назад. Компилятор имеет полное право раскладывать на стеке свои LightElf(249 знак., 03.09.2019 11:08)
- Вот, кстати, прекрасная цитата. "Оставь надежду, всяк сюда входящий": SciFi(380 знак., 03.09.2019 11:49)
- Это мне не понятно. Я же не надеюсь на постоянство содержимого стека, при выходе сохраняю контекст, при входе - восстанавливаю. Какая при этом разница, кто там что перезатер в промежутке? - =AK=(03.09.2019 11:30)
- Э-э, так нечестно. Если компилятор любит так безобразничать, пусть отслеживает, что вот тут longjmp, отставить безобразия. - SciFi(03.09.2019 11:28)
- Спасибо, интересно - Vit(02.09.2019 11:28)
- "Написана без ассемблера", а setjmp и longjmp что такое? - Ale3000(02.09.2019 10:37)
- Тогда уж и protothreads от Adam Dunkels посмотрите. - Dingo(02.09.2019 06:12 - 06:17, ссылка, ссылка)
- Есть разные реализации RTOS. Но если делать период 50микросекунд, то это может вызвать пробуксовку OS. Основное время будет тратится на переключение задач. misyachniy(195 знак., 14.08.2019 17:35)
- 50 мкс - это обращайтесь к прерываниям (по таймеру, например). RTOS это не запрещает. - SciFi(14.08.2019 17:32)
- Свежак: 16-bit RISC-V processor. Вроде Analog Devices спонсор. - misyachniy(02.09.2019 20:03, MCU, ссылка, полностью)
- Нашелся интересный on-line магазин LCSC -> Там широко представлена продукция STC, Holtek и других китайцев с ценами. Я смотрел MCU, но там есть и много другой ЭКБ. Магазин не самый дешевый, это видно, но для экспресс-оценки, что можно ждать в Evgeny_CD(39 знак., 03.05.2018 13:02, MCU, ссылка, полностью)
- Ищу контроллер со встроенным операционным усилителем под задачу. izerg(541 знак., 30.08.2019 17:57, MCU, полностью)
- Народ, кто-нить может в меня куском кода кинуть для отправки LwIP broadcast UDP? Dingo(209 знак., 14.08.2019 15:36 - 15:38, MCU, полностью)
- Нужно срочно, минимальными телодвижениями организовать перехват данных LPT (старинная железяка печатает на матричнике одну строку) и послать эту строку через uart/usb в комп. Вроде "как 2 пальца об асфальт", ан нет... Не могу определиться с MK. Гудвин(285 знак., 22.07.2019 12:11, MCU, полностью)
- ЭЛЬБУС есть маньяки? - alex-el(29.07.2019 23:14, MCU, полностью)
- В одном проекте очень требуется подключение к компьютеру по USB. Но режим работы устройства 24/7. Практика показала, что всякие FT232RL и пр. могут подвести, проработав неделю, а потом подвиснув в самый неожиданный момент. Это всё из-за реализации FDA(743 знак., 14.01.2019 09:07, MCU, полностью)
- Спрошу здесь, чтобы темы не плодить. Как правильно организовать управление направлением передачи RS-485 от ЮСБ моста CH340G? Пробовал с помощью RTS и других сигналов, работает не так, как надо. Во всех примерах, которые я встречал, в том числе Yurasvs(467 знак., 29.07.2019 08:44)
- Развитие темы -> - Evgeny_CD(25.07.2019 00:25, ссылка)
- Уже не раз писал.Нужен короткий (маленький физически) переходник в усб разъем.Что и как из него будет выходить не особо важно.Для тупых лучше с опторазвязкой.Для умеющих грамотно разводить землю неважно.Это лучшее что можно вытянуть из усб.Но PlainUser(313 знак., 15.01.2019 08:59 - 09:05)
- Юзаем силабсовские мосты, в корпусе типа "флешка" с гальванической развязкой. Т.е. как можно ближе к хосту, с минимальной проходной емкостью и правильной разводкой цепей. В цеховом оборудовании работает не то чтобы 24/7, а все 24/365 :) и без PKM(26 знак., 14.01.2019 19:07)
- USB неделю? Это оптимистичное утверждение :) - Codavr(14.01.2019 17:26)
- Погляди на изврат - чел заюзал I2C из VGA для своих дел:) - Vit(14.01.2019 12:57, ссылка)
- О! В тему: я тут после НГ возился PIC16F1454. Сначала заюзал VCP (типа, уже возился под линухом с COM портами, а "самая короткая дорога та, которую знаешь"). Отлаживал под Win. Задолбался - VCP виснет от любого чиха. После третьей перезагрузки Гудвин(537 знак., 14.01.2019 11:15, ссылка)
- Пусть более знающие товарищи меня поправят, но у меня всегда было впечатление, что УСБ - это ширпотреб. Зависло - да и хрен с ним. Ставить на ответственные применения - трэш и угар. - SciFi(14.01.2019 11:08)
- Единственная проблема, когда при помехах виснет хост. Этого довольно просто избежать установкой гальванической развязки поближе к разъему. - VLLV(14.01.2019 15:19)
- Не претендую за звание знающего товарища, но мой опыт использования HID весьма положительный. Как обычно, минимум половина нытья исходит от тех, кто просто не умеет его готовить. Сгенерируют код, прости господи, кубом, а потом жалуются, что USB йцукен(8 знак., 14.01.2019 12:25)
- +1. И виснет оно не потому, что там CDC или HID, а потому, что статикой, реже радиочастотная помеха, наводятся потенциалы разваливающие протокол. Дальше следует переподключение, а софт на это не особо расчитан. В случае компорта предыдущий номер fk0(293 знак., 14.01.2019 12:03)
- У usb есть одна хорошая фишка - 5 В, 500 мА в доступной близости ;) Пользую вот такие Y шнурки для своих настольных ethernet девайсов. Гудвин(14.01.2019 11:30)
- Оно то так, но иногда "ответственное оборудование" ухмыляется и смотрит на тебя разъемом USB. Единственным. Скрипач(197 знак., 14.01.2019 11:16)
- Коллеги, прошу помощи. MSP430F5419A, в режиме I2C мастер. Периодически возникает состояние на шине, когда бит занятости UCBBUSY = 1 держится постоянно и помогает только сброс через установку бита USCSWRST. Ошибка плавающая, закономерность понять RedFroggy(136 знак., 22.07.2019 14:50, MCU, полностью)MBedder
- CanFestival - кто-нибудь делал порт библиотеки под микроконтроллеры? Появилась необходимость в портировании библиотеки на stm32, пока курю примеры под avr. - evgeniy1294(18.06.2019 14:36, MCU, полностью)
- Господа производственники-конструктора, нужен оптимальный вариант построения КД (без строгого соответствия ЕСКД) для указания версий ПО для разных модификаций семейства приборов и учета собственно ПО. Речь не о системе контроля версий, а VLLV(48 знак., 18.07.2019 12:01, MCU, полностью)
- распространенный дисплей 12864a, а был ли шанс что заработает с 3.3 вольтовыми сигналами при 5в питании? - klen(15.07.2019 08:14, MCU, полностью)
- Перехожу с си на си++ и сразу споткнулся: есть класс Usart, реализующий прием/передачу. По нему создаем usart1 и usart2 для соответствующей периферии. Есть 2 протокола proto1 и proto2. На каждой периферии эти протоколы. Вот как правильно на плюсах Constantin24(144 знак., 09.07.2019 20:59, MCU, полностью)
- Если у вас у МК используется всего один USART, то оформление в виде класса много пользы не даст. Но если у МК много USART'ов, то имеет смысл организовать код в виде класса, чтобы его можно было использоваться для всех USART'ов. Особенно, если Ксения(107 знак., 10.07.2019 18:07)
- В классы нужно упаковывать если наследование нужно, а наследовать proto от uart, имхо, не очень хорошая идея. Совсем разные сущности. - Хитрый Китаец(10.07.2019 14:28)
- Я делал подобное, но, наверняка, мой вариант очень далек от того, как надо делать правильно. Есть класс USARTа, он умеет передавать данные из массива, который ему дают, и умеет дергать callback класса протокола при приеме байта. Есть классы, AlexG(449 знак., 10.07.2019 05:28)
- Не стоит упаковывать все в классы - USART и так существует физически и доступен, а значит класс для его описания не нужен. Как вариант можно сделать обертку, которая объединяет usart и dma в удобный интерфейс, это уже будет интереснее. Протокол я evgeniy1294(204 знак., 09.07.2019 21:15)
- А вот не надо плюсы. Там леший бродит и так далее. - SciFi(09.07.2019 21:13)