![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
adnega
-
Постов
3 603 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Сообщения, опубликованные adnega
-
-
В 06.06.2023 в 09:41, jcxz сказал:
Только у ТС не "извлекают", а вроде какое-то устройство с USB-CDC пересбрасывается. И значит новая энумерация может успеть пройти ещё до вашего закрытия порта. И тогда сколько "периодически" не открывай COM-порт - больше он не откроется. Извлечь-вставить в USB-разъём быстро - всё-таки очень трудно, не то что перегрузить МК.
Думаю, ничего не изменится, если "извлекают" == "энумерация". Важно по ошибке порт закрыть, а затем открыть.
-
Я делал так:
пишу/читаю COM-порт;
в какой-то момент USB-COM-порт извлекают;
в софт приходит ошибка;
в обработчике ошибки сразу же закрываю порт;
затем периодически пытаюсь открыть порт.
Работало надежно, но это было лет 10 назад на Windows XP.
-
В 01.06.2023 в 13:23, Ivanii сказал:
Зарегистрировался и обошел весь сайт - нету упоминаний о СДС...
У меня снабжение мелкосерийного производства и одна дорогая позиция для производства может выбираться из десятков позиций производителей в нескольких магазинах при каждой закупке.
sds.compel.ru
Но там нужно, чтоб вас к СДС подключили.
-
В 01.06.2023 в 11:40, mrKirill сказал:
Сейчас "Компэл" повернулся в сторону клиента?
Как только они ввели свою систему, СДС, кажется, называется - удалили аккаунты "юриков". А чтобы создать новый требовали подписать кипу бумаг и поклясться, что будет ежемесячный закуп на 1млн+ рублей. Иначе - снова удалят.
Именно по этой причине я и многие знакомые просто отказались от них.
Я не знаю как для эпизодических закупок, но для серийного производства самое оно.
В 01.06.2023 в 12:56, Ivanii сказал:Без наличия и цен в каталоге бесполезен.
Нужен доступ к СДС - тогда все будет.
-
В 31.05.2023 в 11:26, Ivanii сказал:
Ищу основного поставщика вместо Электронщика.
Из требований - оплата со счета/карты предприятия, доставка в Москву желательно до недели, наличие с невысокими ценами и вменяемый поиск с наличием и ценами, одна позиция часто имеет десяток аналогов разных производителей.
Электронщик - это Компэл для физиков.
-
MS4553M ?
Если отключать только SCL, то нужно следить, чтоб на SDA в это время не было низкого уровня.
И изменения уровня SDA при SCL=1 - это же многократные START/STOP - слейвы к этому нормально относятся?
-
С Днем Победы!
-
Использую GD32E103 и ST-Link/v2.
Защиту устанавливает загрузчик.
Снимаю защиту так [$(PG)=ST-LINK_CLI.exe]:
unlock: $(PG) -c -w32 0x40022004 0x45670123 -w32 0x40022004 0xCDEF89AB -w32 0x40022008 0x45670123 -w32 0x40022008 0xCDEF89AB -w32 0x40022010 0x00000220 \ -w32 0x40022010 0x00000260 -w32 0x40022010 0x00000200 -w32 0x40022010 0x00000210 -w32 0x1ffff800 0xFFFF00A5 -w32 0x40022010 0x00000200
Программа местами поругивается, но снятию защиты это не мешает.
Правда, если ноги SWD переопределены, то предварительно нужно зайти в заводской загрузчик (BOOT+RESET).
PS. От GD-Link отказался, т.к. не знаю как на нем обновить прошивку и включить управление выходом RESET.
-
1
-
-
В 18.04.2023 в 16:01, _4afc_ сказал:
говорят работает, не проверял:
ЦитатаUpsample IIR filter by integer factor
В целое число раз?
-
В 18.04.2023 в 14:02, aBoomest сказал:
Я пока не все моменты прочувствовал в задаче.
Для полного погружения можно ниточки привязать от точки (нескольких точек) на окружности до всех нулей-полюсов.
Потом точки на окружности сдвинуть в соответствии с изменением Fs - ниточки утянут нули-полюса куда-то в новое место.
Это будет больше похоже на правду, но вряд ли такое получится для всех точек окружности.
Можно попробовать две точки по краям фильтра...
-
В 18.04.2023 в 12:23, aBoomest сказал:
Похоже сдвигать надо не на
1.211.21 ,
а на
1.21⋅π1.21⋅π
Ну т.е. делить.
Почему? Т.е. если нужно преобразовать условно из 40 кГц в 40,001 кГц, то сдвигаем на 1,000025 * π - более чем в три раза?!
-
В 17.04.2023 в 08:52, aBoomest сказал:
Получалось, как писал выше не та амплитуда.
Да, по частоте на первый взгляд сдвинется, но в АЧХ в области пропускания будут сильные колебания.
Я не знаю простой трансформации, чтобы сохранить прежние расстояния до нулей и полюсов на новой диаграмме.
Наверное, можно попробовать ввести частотную зависимость всех коэффициентов, а потом как-то обратить в многочлены,
то там скорее всего тригонометрические функции будут которые нужно будет в ряд раскладывать и т.п.
Наверное, проще все по правильному сразу сделать без хитрения.
Кста, будут интересно сравнить новую и старую диаграммы - скорее всего ничего общего на них не будет ((
-
Если у вас задачка учебная, то можно поэкспериментировать, но я все больше уверен, что ничего хорошего от сдвига точек не получится.
Каких-то широкоизвестных приемов (для изменения Fs) я не припомню, и, думаю, вряд ли они есть, т.к. для безразмерного (деленного на Fs) фильтра это будет совсем другой фильтр.
Если есть возможность пересчитать новый фильтр, то нужно пересчитывать - благо из временной области в частотную можно туда-сюда отображать.
Лучше потратить усилия в этом направлении.
-
В 16.04.2023 в 22:42, aBoomest сказал:
А полюс на горизонтальной оси.
А если "расщеплять", то на какой угол вращать?
+180/1.21 и -180/1.21
Стоп. Это для точек с углом 180.
У вас фильтр уж очень простой - решение тоже может быть простым.
А что если z заменить на z*1.21 или z/1.21?
-
В 16.04.2023 в 22:14, aBoomest сказал:
Понял. Спасибо.
Нужно пробовать, т.к. при этом преобразовании тоже не все гладко. Что делать с точками, которые лежат на оси X? Расщеплять на две комплексно-сопряженные?
-
В 16.04.2023 в 22:01, aBoomest сказал:
Прошу прощения за глупость: почему делить? У нас же частота Fs увеличилась, поэтому как бы АФЧХ "растянулась", если можно так выразиться. Т.е. каждая точка частотной сетки АФЧХ увеличилась. Нет?
Частота Fs увеличилась, но вам нужно частоту фильтра оставить прежней, поэтому она в безразмерном (деленном на Fs) виде как бы уменьшилась, т.е. характерные точки как бы стянулись к нулю по частоте.
-
В 16.04.2023 в 21:43, aBoomest сказал:
О! Супер. Я сижу и тоже думаю о нулях и полюсах. ибо просто dft и idft как-то не понятно что с этим делать . . . . .
А на какаой угол менять? диаграммы диапазон [0..+180] и [0..-180]
Имеем 33 и 40 кГц. 180 градусам соответствует 33 кГц.
40/33 = 1,2121
Т.е. мне как бы диапазон 0..180 надо растянуть на 0 .. (180*1,2121)
Т.е. угол каждого нуля/полюса надо умножить на 1.21 ???
Да. Но это лишь один из вариантов решения, т.к. у вас ничего кроме коэффициентов нет. Того же спада АЧХ у вас скорее всего не будет, т.к. порядок фильтра не изменяется. Если вы хотите те же характеристики спада АЧХ, то нужно пересчитывать фильтр полностью, т.к. может потребоваться увеличивать порядок фильтра (коэффициентов станет больше).
В 16.04.2023 в 21:43, aBoomest сказал:Т.е. угол каждого нуля/полюса надо умножить на 1.21 ???
Дык, вроде делить на 1.21
-
В 16.04.2023 в 20:57, aBoomest сказал:
И еще вопрос, а как я из этого всего получу коэффициенты фильтра?
Вот имею я БИХ фильтр с Fs = 33 с коэффициентами
a1,a2,a3 (числитель)
b1,b2,b3 (знаменатель)Как мне получить аналогичные шесть коэффициентов для Fs = 40?
По вашим коэффициентам можно построить ноль-полюсную диаграмму для вашей частоты. При изменении Fs угол всех точек должен пропорционально измениться и получится новая ноль-полюсная диаграмма. Превратить ее в коэффициенты a и b. Я бы так попробовал.
-
Нашел старенький, но ответ.
Цитата> So how should I go about wrapping ldm / stm for usage in C land?
There is in general no way to do that. Sorry.
-
В 12.04.2023 в 14:55, Arlleex сказал:
LDM/STM пофигу, в каком порядке перечислен {reglist}. Там в КОП инструкции эти регистры отмечаются битовой маской. А инструкция проходится по списку этих битов, начиная с младшего.
Поэтому важен порядок лишь загрузки данных в сами регистры, а не то, как они выглядят в списке LDM/STM.
Это понятно. Но как компилятору объяснить, что порядок в reg_list имеет значение? GCC выдает предупреждение, но как заставить соблюдать порядок номеров регистров?
-
А так попробовать:
u32 *p0 = ..., *p1 = ...; uint i = ...; u32 j0, j1, j2, j3; asm( "p01: LDR %0, [%4, #8 * 1] \n" " LDR %1, [%4, #8 * 2] \n" " LDR %2, [%4, #8 * 3] \n" " LDR %3, [%4, #8 * 4]! \n" " SUBS %6, %6, #4 \n" " STMIA %5!, {%0,%1,%2,%3} \n" " BNE p01" : "=r"(j0), "=&r"(j1), "=&r"(j2), "=&r"(j3) : "r"(p0), "r"(p1), "r"(i) : "cc", "memory"); j0 = j0; j1 = j1; j2 = j2; j3 = j3;
-
Стоп. Тут же IAR ерунду пишет:
0xC778 STMIA R7!, {R6,R5,R4,R3}
-
В 12.04.2023 в 14:01, jcxz сказал:
Чем это лучше варианта_2?
Вариант_2 вас устроил только на половину. Может, LDRD/STRD добавит вторую половину.
Я так понимаю проблему: вы хотите явно использовать имена регистров, но при этом хотите, чтоб компилятор о их использовании знал, и какие-то дополнительные вещи делал на автомате?
Не совсем понятно, чем вариант_1 плох? Почему важен именно порядок регистров?
-
В 12.04.2023 в 13:53, jcxz сказал:
Данные выровнены.
А можно попробовать LDRD/STRD ?
usb virtual com port программное закрытие
в Программирование
Опубликовано · Пожаловаться
Можете подробнее объяснить?
На Win 10 все гораздо лучше стало. Прямо сейчас взял USB-CDC с отключаемым 1к5-резистором. Включил терминал - логи сыплются. Кратковременно отключил резистор, порт закрылся. Ничего не передергивая, открываю порт - логи бегут. Бульк от энумерации был при касании 1к5 резистора. Старался максимально быстро коснуться управляющего пина. Кста, чтение из порта у меня периодическое. Поэтому порт мог закрыться даже после энумерации. Что я делаю не так?