- Туплю к вечеру. Есть ли готовый рецепт, как в compile-time
преобразовать текстовую строку в юникод? Т.е. где-то в заголовках
есть определение LightElf(358 знак., 17.11.2020 23:18, dao, полностью)
- Измени решение задачи. Не помещай unicode-дескрипторы во FLASH,
конвертируй функцией в real-time. - RxTx(18.11.2020 02:21)
- На чистом C скорей нельзя: если строку можно, потенциально,
разобрать на constexpr буковки через "STR"[1], "STR"[2]..., то
длину строки на уровне макропроцессора -- не выявить. На C++ можно
сделать, начиная с C++11. Подходы могут быть немного разные: fk0(786 знак., 18.11.2020 01:58, ссылка)
- Как вариант, например так: UniSoft(230 знак., 17.11.2020 23:39)
- В языке Си нет понятия строки, поэтому ответ - нет. Конвертация
между кодировками - замоченная вещь, которой явно не место в
компиляторе. lloyd(109 знак., 17.11.2020 23:23)
- Господа, кто использует, подскажите проверенный скринрекордер под
10ку - RED_DRAGON(16.11.2020 21:55, dao, полностью)
- Нужно случайным образом разбить на пары людей. Например для игры в
теннис 2на2 во время обеденного перерыва. Половые и другие признаки
не учитываются, кол.во людей может быть n человек. Язык Си. Честно
ли будет получаться? Tpoeшник(512 знак., 15.11.2020 22:23 - 16.11.2020 00:01, dao, полностью)MBedder
- А как ваш вариант программы борется с тем, чтобы Ксения не играла
против Ксении? :) - Kceния(17.11.2020 11:05)
- Запустил 100000 раз программу которая считает на каждые 100 i сумму
выпадений 3ки: Tpoeшник(205 знак., 17.11.2020 10:51, картинка)
- Юморка ради C++ RxTx(1 знак., 16.11.2020 22:58, картинка)
- Нужно N раз подряд переставить рандомные элементы в списке и
вывести его попарно: fk0(836 знак., 16.11.2020 12:04)
- А может такой алгоритм дать на ввыходе идентичный входным данным
результат Tpoeшник(75 знак., 16.11.2020 14:27)
- Откуда сведения, что "(unsigned long)m * rand()" не переполнится? - SciFi(16.11.2020 12:09)
- Небольшое расследование показало, что RAND_MAX бывает равен 0x7fff
или 0x7fffffff. Во втором случае нужно использовать для
произведения 64 бита, а в первом распределение получается не совсем
равномерным. йцyкeн(28 знак., 16.11.2020 18:39, ссылка)
- На мой взгляд, единственный разумный вариант тогда, что-то вроде (m
* rand() >> 15) % m. fk0(68 знак., 17.11.2020 02:55, ссылка)
- Любая попытка превратить равномерное распределение [0..n-1] в
равномерное же распределение [0..m-1] чистой функцией обречена на
провал, если n%m != 0. Если у нас на входе всего 32768 разных
значений X, которые мы хотим превратить в 1000 значений Y, нужно
смириться с тем, что на некоторые Y отобразится 32 значения X, а на
некоторые 33, и это ещё в лучшем случае. По ссылке как раз
предлагается простой вариант: для m==1000 значения rand() в
диапазоне [32000..32767] считать йцyкeн(79 знак., 17.11.2020 12:48)
- Ёлы-палы, нет задачи изобрести вечную иглу для примуса. Более того,
это вредно. Один раз изобрёл, а потом кто зряплату платить будет? - SciFi(17.11.2020 13:09)
- Да речь не о равномерности, а о том, что выражения rand()%max
следует избегать т.к. в rand() младшие биты якобы "плохие" (о чём
RxTx писал). Соответственно идея в том, чтоб откинуть часть младших
бит. Вариант с зацикливнием меня пугает для случая, когда за rand()
стоит настоящий ГПСЧ. В линуксе программы висящие на чтении
/dev/random потому, что "не хватает энтропии" все наверное видели,
особенно после загрузки, и особенно ssh... - fk0(17.11.2020 13:08)
- Мне с генераторами с.ч. пришлось разобраться еще на спектруме,
начиная с тех времен когда попадался какой-то интересный код или
когда я пытался нарисовать звезды на экране, а получались столбцы.
Во-первых я выписал ряд кодов гсч (все они были самопальщиной, за
исключением генератора Elite), во-вторых, благодаря вовремя
попавшей в руки брошюрке разобрался как работает линейный
конгруэнтный генератор. Слов во всяких википедиях тонны, но на деле
все просто. Есть текущее RxTx(4109 знак., 17.11.2020 05:15, ссылка)
- Да, тут ещё ошибка: интервал это от нуля, до RAND_MAX включительно. - fk0(17.11.2020 02:46)
- Генерал, редактор в сахаре -- это всё, пиздец, я уже не могу...
Ссылка: fk0(13 знак., 16.11.2020 12:05, ссылка)
- frand() лучше заменить на random(), т.к. float-числа в языке C
"нечестно" округляются - на самом деле дробная часть усекается.
Там, где функция random() неопределена, ее можно получить так
остаток деления random(n)=lrand()%n; Кроме того randomize()
предварительно надо запустить, иначе "случайный" выбор будет при
запуске этой программы каждый раз повторяться. - Kceния(16.11.2020 00:01)
- яб заменил % на & ))) - Aleksey_75(15.11.2020 23:52)
- Пост типа "найди 10 ошибок"? - BlackMorda(15.11.2020 23:46)
- Существуют ли АЦП, у которых можно настроить диапазон входной? Ну,
типа, хочу с максимальным разрешением от 1 до 2 В оцифровать...
чтобы не городить на ОУ и ЦАП всё это. - POV_(15.11.2020 00:44,
, dao, полностью)
- Я тут почитал пристально и понял, что весь шухер поднят ради одного
бита в разрешении. Мсье, я сам извращенец-минималист, но здесь
вынужден сделать "ку" перед Вами. - Kpoк(15.11.2020 22:42)
- А в чем, собственно, проблема? возьмите МК, у которого и ОУ, и АЦП,
и ЦАП - все на борту есть. Воткнуть три резистора не сильно сложно - lloyd(15.11.2020 18:04)
- Так любой проц может, если на опорный вход АЦП правильный источник
приделать на 2.5 В, см серию REF192.. 196. - Visitor(15.11.2020 11:33)
- Со встроенными управляемыми усилителями - миллион. Например
mcp3913. Или ADS131E04 - Kpoк(15.11.2020 09:55)
- Хотя не, Offset там лишь для коррекции. На полдиапазона не сместить
нижнюю границу измерений. - POV_(15.11.2020 15:51,
)
- Вам требуется разностный усилитель на входе (по ссылке). Но у них
достаточно низкое входное сопротивление. Когда-то Ксения искала АЦП, допускающий отрицательный сигнал при положительном
собственном питании. Это, скорее всего, оно. - teap0t(15.11.2020 16:51, ссылка)
- Так про разностный усилитель всё ясно. Именно оно и надо. Но
хотелось чтобы оно уже было в АЦП. И нижний уровень чтобы задавался
бы и коэффициент усиления. - POV_(15.11.2020 17:00,
)
- АЦП с дифвходом, -VIN на опору 1В (или низкоомный зашунтированный
делитель более высоковольтной опоры), +VIN - на измеряемое, VREF -
на тот же 1В. Получишь 0х000 при 1В и 0xFFF при 2В на входе. Не
благодари :)) - MBedder(15.11.2020 17:14)
- 1В был примером. Его надо перестраивать как и коэффициент усиления.
На рассыпухе геммор. Потому и ищу готовое решение. - POV_(15.11.2020 17:49,
)
- МК с двумя каналами ЦАП (один на +REF, другой на -REF) и с дифАЦП,
допускающим произвольное -REF - может, такой и найдется. Но гораздо
гораздее взять приличный 20-24-битный АЦП и делать всю эту
камасутру в цифре - MBedder(15.11.2020 18:18)
- Скорее всего оставляю внутренний АЦП. Но опору ему буду с ЦАП
(встроенного) давать. А второй ЦАП будет на вычитатель идти,
задавать нижнюю границу диапазона. На дня замакетирую. - POV_(15.11.2020 19:43,
)
- Вы на внешних компонентах, их температурных параметрах с
температурными градиентами и точности потеряете гораздо больше, чем
на сигма-дельта с повышенной разрядностью. О программной и
схемотехнической обвязке этого ужаса даже упоминать неловко.
Гляньте параметры ADS8598 или того же AD7606. Там всё очень
скромно, а это - однокристальные варианты. Ошибки после коррекции
на уровне нескольких младших разрядов, КОСС нигде не указан,
входные токи микроамперного диапазона. Это teap0t(52 знак., 15.11.2020 20:42)
- АЦП в каком диапазоне опорного работает? Ваша нижняя граница
опорного в допусках чипа? - Nikolay_Po(15.11.2020 20:29)MBedder
- Опора 2,4. Сигнал примерно от 1В. А размах его зависит от ряда
условия эксперимента (но в 2,4В влезает всегда). Вот под этот 1В
хочу подстроиться, а усиление задать так, чтобы ожидаемый диапазон
(от долей вольта до 1-1,4В) в 2,4В влез. - POV_(15.11.2020 20:40,
)
- Вот, вполне можно что-то подобрать. На диапазоне 2.4-1.0 потеряете
меньше половины, т.е. один разряд долой. Реально там, конечно, не
24-1=23, а меньше, но, всё равно, будет лучше, чем рассыпуха. - teap0t(15.11.2020 20:53, ссылка)
- Ксении, кстати, вы подсказали АЦП по её хотелкам: многоканальный, с
разностными входами, и допустимым диапазоном сигнала, уходящим в
отрицательную область. Давно дело было. Кся там требовала однокристального решения, допускающего отрицательный
сигнал на входе и строго однополярного положительного питания. - teap0t(15.11.2020 18:53)
- Ну, с mcp3913 такой номер не пройдёт - "Absolute Voltage on REFIN-
Pin -0.1--+0.1V" (p.5), у ads131e04 так и вовсе "VREFN = AVSS"
(p.7). АЦП вообще не так работают. Поперёк входа стоит "летающий"
конденсатор, которым входную разницу переносят во входной диапазон
измерительной части. С REF всё то же самое: или строго 0...REF, или
конденсаторный вариант, коему безразлично исходное смещение. - teap0t(15.11.2020 17:41)
- MCP3913 вроде похож на то, что хочу. Только скорости не хватает
чутка, всего 125 кВыборок ((( - POV_(15.11.2020 15:48,
)
- Есть немало МК с АЦП, у которых -VREF и +VREF выведены на
раздельные ноги - подключай к ним 1 и 2В соответственно и
наслаждайся. Не исключено, что и отдельные АЦП такие же есть -
поищи у ковбоев и девиц - MBedder(15.11.2020 00:51)
- C'est magnifique! "Контора расчётных приборов" ToчкaOпopы(1 знак., 15.11.2020 19:54,
, dao, ссылка, картинка)
- [IP стек с формальной верификацией] Не нашел такого. Достаточно странно. Evgeny_CD(417 знак., 15.11.2020 00:35, dao, ссылка, ссылка)
- Что умеет Windows Power Shell в сравнении с тем же Python'ом, ежели
таковое сравнение вообще уместно? - MBedder(13.11.2020 17:01, dao, полностью)
- таблетку бы от visual-tft ... на просторах инета вроде не встречал backa(77 знак., 14.11.2020 02:07, dao, полностью)MBedder
- Надо студенту дать на изучение что-нибудь из программирования,
собственно писать под Вин на сшарпе, плюсах и паскале он умеет. symbions(663 знак., 12.11.2020 14:12, dao, полностью)
- Сильно поиздеваться хотите? Вариант: на ПИКе в одном прерывании на
19200 Гц реализовать обмен по КОМ порту и генерацию тонов DTMF. Мой
исходник имеется, не жалко :-) - Visitor(14.11.2020 12:56)
- Пусть учит Хоровица, Ритчи, NodeJS, и SQL. Все остальное пусть идет
лесом. - Tpoeшник(14.11.2020 11:23)
- >>> RxTx(1 знак., 14.11.2020 01:34, картинка)
- :) - symbions(14.11.2020 03:22)
- Добавлю - Golang ещё подучить и вместо C использовать - OlegPowerC(13.11.2020 01:03)
- Всем спасибо symbions(814 знак., 12.11.2020 23:16)
- 1) Смело хороните всё "от майкрософта" (кроме TypeScript). Это уже
давно не те специалисты в области ПО, которыми были 20 лет назад.
Все их поделки - лютый хлам, и чем быстрее вы от MS избавитесь -
тем легче будет дальше lloyd(917 знак., 12.11.2020 15:16)
- Плюнь на всех умников ниже. А студню дай что угодно... POV_(480 знак., 12.11.2020 15:13,
)
- WinCE -- это очень новая, модная и молодёжная, востребованная
технология в 2021 году, да. Ещё Fortran и COBOL. - fk0(12.11.2020 15:00)
- 1) Win не нужен, только линух. Пусть учится собирать эмбеддед
дистрибутивы через билдрут или yocto. evgeniy1294(49 знак., 12.11.2020 14:32)
- ХЗ, не понимаю, зачем покупать перемаркированный Китай за конский
ценник(а они отдают на перемаркировку не самые свежие и толковые
изделия, если задёшево), mse homjak(101 знак., 13.11.2020 12:58, dao, ссылка, полностью)MBedder
- Полосу до 350, каналов до четырех, включить логический анализатор и
двухканальный AWG (Arbitrary Waveform Generator) - и все за
бесплатно, купить достаточно только базовый MSO5072 за $900
--> MBedder(43 знак., 13.11.2020 13:45, ссылка, ссылка)
- Без матов можно? Лет 10 назад эти уроды впаривали УСБ прибор типа 2
канала осцилла и функциональный генератор до 100 МГц, оказалось что
генератор не ДДС, а тупой делитель, хард отдельно продают, за опции
своего паршивого софта еще денег хотят! - Visitor(12.11.2020 19:36)MBedder
- с актакомовскими приборами кто-нибудь работал? AVF(227 знак., 31.01.2013 12:40, dao, полностью)
- Парни, мало ли кому надо, делал давно плагин под FF и EDGE OlegPowerC(28 знак., 11.11.2020 11:13, dao, ссылка, ссылка, полностью)MBedder
- Случайно нашел примеры как загнать линкер в ступор BlackMorda(373 знак., 11.11.2020 11:42, dao)
- есть ли смысл писать у каждой функции noexcept в с++ в embedded сфере? - Constantin24(02.11.2020 08:56, dao, полностью)
- Я слышал правильные пацаны пишут STDEPILOGUE и определяют макро.
Иногда из одних подчеркиваний. Заодно и читающему приятно. ;) - RxTx(02.11.2020 22:07)
- Только в случае, когда определение функции не видно вызывающей
стороне. Когда функция глобальная и определена в другом модуле. В
случае статических и инлайн (определённых в хедере) функций
компилятор может сам догадаться. Я так думаю. - fk0(02.11.2020 15:15)
- Везде - вряд ли. Плохо не будет, но лучше cработает если опциями
компилятора запретить исключения во всем проекте. Малый
джентельменский список где нужно, если есть возможность -
конструкторы, копирование, перемещенеие, etc. - Kabdim(02.11.2020 15:07)
- используется ключ -fno-exceptions для g++. По источникам не тоже
самое что и noexcept. Вот и задумался, а будет ли вообще какая
выгода с этого noexcept - Constantin24(03.11.2020 21:10)
- Это дурноватая идея. Оправдана только для экономии памяти. Когда уж
вот 10% очень как нужны. - fk0(02.11.2020 15:16)
- Исключения тормозят + прошивки как правило то место где все
исключительные ситуации должны быть обработаны сознательно. По
крайней мере у меня это так. Поэтому для меня bool,
Result<>, getLastError, (*onError) - каждая в своих
ситуациях лучше исключения. Kabdim(57 знак., 03.11.2020 12:08)
- У Александреску где-то видео было, рекомендую: fk0(336 знак., 05.11.2020 17:38, ссылка, youtube)
- Исключения тормозят только в том случае если пытаться (по
непониманию) их использовать как некий стандартный механизм-замену
возвращаемых значений. При выбросе исключения происходит stack
unwinding, возврат указателя стека и это делается в цикле, стек
вызовов интерпретируется как список (list, примерно). Поэтому это
будет разумеется не так быстро как возврат значения, но сейчас тоже
не так фатально. Жуть о очень медленных исключениях идет с эпохи
примерно 96..98 годов, RxTx(674 знак., 03.11.2020 23:34)
- поделитесь подробным использованием Result<>,
getLastError, (*onError) - Constantin24(03.11.2020 21:06)
- Посоветуйте плз что-нибудь на тему описания логики автомата
состояний интерфейса пользователя. VLLV(1111 знак., 08.11.2020 19:37, dao, полностью)
- Да, если у тебя мега-большой автомат, то его НУЖНО бить на десяток
более мелких организованных в иерархическую систему. Где мелкие
отвечают за что-то одно. Иначе ты и не сможешь, если не дай бог,
автоматы должны работать параллельно (число состояний перемножается
и достигает огромных значений). - fk0(09.11.2020 14:38)
- Можно сделать "автомат с магазинной памятью" (см. "Введение в
теорию автоматов, языков и вычислений", Ульман Джеффри Д., Хопкрофт
Джон Э.) но оно того не стоит. Не того уровня задача. - fk0(09.11.2020 14:26, ссылка)
- Шалыто читал? Это называется вложенный автомат. Идея в том, что
есть иерархическая система КА. Где автоматы связаны вместе тем, что
сами встроены в один КА верхнего уровня. И отдельных состояниях КА
верхнего уровня может быть вложен внутренний КА. Т.е. при переходе
в это состоение запускается внутренний КА и внешний КА не выходит
из состояния пока внутренний не дойдёт до некого финального
состояния. См. цикл статей на - fk0(09.11.2020 14:24, ссылка)
- Что-то мне подсказывает, что достаточно очереди (для "нажатий") и
спулера. При обратных связях соответствующие одиночные элементы или
последовательности вставляются в очередь, остальное "расталкивая
локтями". Времена для спулера задавать в элементах очереди. - Vit(08.11.2020 22:37)
- смотря что у вас за автоматы ? думаю нет проблем ввести ожидание
перехода на следующий шаг автомата... у мну каждая функция автомата
возвращает следующий шаг автомата, из основной логики нет никаких
проблем ожидать решение о переходе из вне! - Aleksey_75(08.11.2020 22:28)
- Автоматы состояний в GUI? Зачем? Пример? GUI - это кнопки,
чекбоксы, формы, поля ввода или что-то иное? В первом приближении -
подстостояния у состояний, подавтоматы. - RxTx(08.11.2020 19:48)
- Чем меньше "инструментов ради инструментов" тем лучше. Это моя
мысль такая :) Cкpипaч(356 знак., 08.11.2020 19:41)
- Ну стек окон не такая же и сложная в понимании штука - lloyd(08.11.2020 19:38)