Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
-31 / 2 / 2
Регистрация: 05.09.2018
Сообщений: 184

Стабилизация частоты работы ШИМа на STM32H743

05.12.2024, 11:24. Показов 3305. Ответов 33

Студворк — интернет-сервис помощи студентам
Всем привет!
Программирую STM32H743 в среде CubeIDE.
Задача - запустить любой таймер на любой частоте и убедиться в стабильности частоты ШИМ-сигнала.
В качестве отладки был выбран первый таймер, канал CH1. Частота работы - 4 кГц. Настройки Clock config, самого таймера и программного кода прилагаю.
Проблема в том, что частота ШИМа постоянно дрожит. Смотрю передний фронт следующего импульса после засинхренного - скачет в диапазоне 500 нс.
Всячески пытался изменить настройки Clock config - эффект сохраняется. Также менял таймер - улучшений не последовало.
Для проверки, повторил эксперимент на контроллере STM32F746 - частота стабильная, на осциллографе колебания в диапазоне 1 нс.
В чём может быть причина такого сильного дребезга?
Миниатюры
Стабилизация частоты работы ШИМа на STM32H743   Стабилизация частоты работы ШИМа на STM32H743   Стабилизация частоты работы ШИМа на STM32H743  

0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2024, 11:24
Ответы с готовыми решениями:

Оптимизация частоты ШИМа для управления приводами робота.
Из каких соображений можно определить оптимальную частоту ШИМ? При сильно низкой частоте двигатель будет вращаться рывками. При сильно...

Edimax BR-622nS в качестве повторителя или стабилизация работы Wifi
Здравствуйте, я столкнулся с такой проблемой, есть Wifi точка доступа (TP-LINK wr741n) без пароля, но связь очень слабая, мне нужно...

Не получается запустить прерывание по приему FDCAN, stm32h743
Доброго времени суток. Задача следующая: необходимо передавать и принимать сообщения по CAN шине. Собрал простейшую схему на двух платах...

33
-26 / 4 / 0
Регистрация: 26.09.2024
Сообщений: 128
06.12.2024, 12:22
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от iaz5 Посмотреть сообщение
Да,нашел.
скиньте пожалуйста сюда если не жалко.

Добавлено через 2 минуты
Цитата Сообщение от Dushevny Посмотреть сообщение
и на висящую в воздухе дорожку наводились помехи.
И кстати поэтому все не задействованные порта настроить на вход и подтянуть к минусу или на выход НО опасно.
1
1516 / 532 / 77
Регистрация: 22.09.2023
Сообщений: 1,694
06.12.2024, 12:37
Цитата Сообщение от MechanicVV Посмотреть сообщение
скиньте пожалуйста сюда если не жалко.
Вот самое свежее:STM32H74x, 75x.zip
1
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
06.12.2024, 12:46
Цитата Сообщение от iaz5 Посмотреть сообщение
Да,нашел. Объём информации
пугает после AVRки...
Напоминаю, у f103 объем несколько менее пугающий. Раза в три.
Впрочем, это ведь не учебник, а справочник. Никто не читает его от корки до корки. Читают лишь про тот модуль, который нужен. Но и модули у f103 проще. В них меньше регистров и настроек.
Цитата Сообщение от iaz5 Посмотреть сообщение
Я проверю как коставлю среду какую-то помимо Cube, напишу Вам
Да мой-то код куда угодно скопипастить можно, он к IDE не привязан.
Цитата Сообщение от Dushevny Посмотреть сообщение
Вот из UM1974 STM32-NUCLEO44 boards:
Не увидел там ничего про деление частоты на 3. На картинке из первого поста тоже вроде все настроено правильно.
Цитата Сообщение от Dushevny Посмотреть сообщение
Вероятно, до обновления MCO у ST-Link
При чем здесь MCO? Или там разработчики платы упоролись и вместо кварца тактируют МК непойми от чего?
Цитата Сообщение от MechanicVV Посмотреть сообщение
скиньте пожалуйста сюда если не жалко.
Одной из первых же ссылок в гугле "stm32h7 reference manual". Чего там искать-то?
Цитата Сообщение от MechanicVV Посмотреть сообщение
И кстати поэтому все не задействованные порта настроить на вход и подтянуть к минусу или на выход НО опасно.
Нет. На оба высказывания.
Подтягивать нужно только если хочется получить минимальное потребление. На время отладки или при работе от сети эти микроамперы не повлияют ни на что. И то в режиме "отключения" (самый агрессивный режим сна) настройки портов тоже влиять не будут. Ложных срабатываний от периферии тоже не будет, пока вы их сами не включите.
А на счет опасности подтяжки - ее ведь делают не настройкой порта на выход, а настройкой порта на вход с подтяжкой в ту или другую сторону. Причем резистор подтяжки в контроллерах огромный, десятки килоом. Ножку вы им не пожжете. А вот если подтянете не туда, потребление как раз возрастет.
0
1516 / 532 / 77
Регистрация: 22.09.2023
Сообщений: 1,694
06.12.2024, 13:10
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
При чем здесь MCO?
Смотрите внимательно картинку, о которой задали исходный вопрос и мою. Выход MCO ST-Linkа заведен на вход HSE отлаживаемого контроллера. Внешний кварц на отлаживаемый контроллер из коробки не запаян, от слова совсем.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
И то в режиме "отключения" (самый агрессивный режим сна) настройки портов тоже влиять не будут.
Вы использовали этот режим? А я использовал. Сначала схема потребляла в спячке сотни микроампер, сейчас, после правильной настройки портов перед уходом в глубокий сон - доли микроампера (подсказка: сквозные токи во входных каскадах, когда потенциал на болтающейся в воздухе ноге из-за наводок стремится к порогу переключения). Вот так вот не влияют, да.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А на счет опасности подтяжки - ее ведь делают не настройкой порта на выход, а настройкой порта на вход с подтяжкой в ту или другую сторону. Причем резистор подтяжки в контроллерах огромный, десятки килоом. Ножку вы им не пожжете
Именно. И входное сопротивление настроенной на ввод ноги будет десятки килоом. А у настроенной на вывод - десятки ом. Какая из них будет менее восприимчива к наводкам?
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
06.12.2024, 14:33
Цитата Сообщение от Dushevny Посмотреть сообщение
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Или там разработчики платы упоролись и вместо кварца тактируют МК непойми от чего?
Выход MCO ST-Linkа заведен на вход HSE отлаживаемого контроллера. Внешний кварц на отлаживаемый контроллер из коробки не запаян, от слова совсем.
То есть все-таки упоролись...
Цитата Сообщение от Dushevny Посмотреть сообщение
Вы использовали этот режим?
Тестировал. Сначала довольно долго разбирался почему в режиме сна (stop что ли) L151-й потребляет сотни микроампер. Но удалось снизить до приемлемого уровня (с учетом того, что ему время от времени просыпаться надо было). Режим отключения точно запускал, на f100 кажется, но уже без фанатизма.
Ну и как я слышал, в некоторых контроллерах настройки ног все-таки влияют и в отключенном режиме. Может, и в вашем так.
Цитата Сообщение от Dushevny Посмотреть сообщение
Именно. И входное сопротивление настроенной на ввод ноги будет десятки килоом. А у настроенной на вывод - десятки ом. Какая из них будет менее восприимчива к наводкам?
Никакая. 30 мкА для наводки довольно большой ток. Это уже антенну к ноге подключать надо. Или что-то силовое поблизости коммутировать.
Но, еще раз. про болтающиеся ножки где только не пишут. При том, что значение они имеют только при экономии энергии. Если контроллер питается от сети, а тем более во время экспериментов с макетной платой - не заморачиваемся.
0
658 / 411 / 76
Регистрация: 21.09.2008
Сообщений: 1,412
08.12.2024, 22:38
Цитата Сообщение от Dushevny Посмотреть сообщение
Сначала схема потребляла в спячке сотни микроампер, сейчас, после правильной настройки портов перед уходом в глубокий сон - доли микроампера
Подробнее можно, как правильно настроить?
0
1516 / 532 / 77
Регистрация: 22.09.2023
Сообщений: 1,694
09.12.2024, 11:49
Цитата Сообщение от sharpey Посмотреть сообщение
как правильно настроить?
Все "висящие в воздухе" ноги перевести в режим выхода. В том числе и те биты портов (и даже целые порты), которые не выведены на ноги в конкретном корпусе. Высший пилотаж - пройтись по схеме и если, скажем, с обеих сторон от неиспользуемой ноги в спячке присутствует высокий уровень - вывести высокий уровень и на неиспользуемую, чтобы исключить утечку на соседние выводы. На всех ногах, на которые приходят сигналы с кнопок и т.п. включить подтяжки к неактивному уровню (если кнопка замыкает на землю - включить подтяжку к питанию, если на питание - подтянуть к земле). Примерно так.
1
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
09.12.2024, 13:11
Цитата Сообщение от Dushevny Посмотреть сообщение
Все "висящие в воздухе" ноги перевести в режим выхода.
Не выхода, а входа с подтяжкой. И в любом случае это в последнюю очередь. И в зависимости от режима сна и камня может вообще оказаться бесполезным.
А главное - убедиться, что правильно организован вход в сон, что правильно разведена плата - нет токопотребляющих элементов (в т.ч. резистивных делителей, стабилизаторов, микросхем), нет паразитного питания на прочей периферии. Если используется именно сон, а не отключение - убедиться, что вся ненужная периферия отключена; вот тут настройка ножек точно влияет. Если режим отключения - все проще, но все равно есть внешняя периферия и есть RTC.
Главное - какой режим сна используете и надо ли часто просыпаться?

Добавлено через 7 минут
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
И в зависимости от режима сна и камня может вообще оказаться бесполезным.
Для тех, кто не верит, процитирую документацию:
In Standby mode, all I/O pins are high impedance except:
- Reset pad (still available)
- TAMPER pin if configured for tamper or calibration out
- WKUP pin, if enabled
И, если кому-то нужен перевод: в режиме отключения все выводы, кроме Reset, Tamper и WKUP, настроены как высокоомные входы независимо от того, что там в регистрах GPIO.
1
1516 / 532 / 77
Регистрация: 22.09.2023
Сообщений: 1,694
09.12.2024, 15:42
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
И, если кому-то нужен перевод
Кроме Standby есть еще Stop mode, в котором порты функционируют в полном объеме.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
09.12.2024, 18:34
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Если используется именно сон (прим. sleep, stop, ...), а не отключение - убедиться, что вся ненужная периферия отключена; вот тут настройка ножек точно влияет. Если режим отключения (прим. standby) - все проще, но все равно есть внешняя периферия и есть RTC.
Цитата Сообщение от Dushevny Посмотреть сообщение
Кроме Standby есть еще Stop mode, в котором порты функционируют в полном объеме.
Да, именно это я написал.
В любом случае, экономию нужно начинать с платы. Вдруг там 15-ваттный светодиод стоит. На индикации питания.
Кстати, глянул режимы сна в ch32v103, v303, у тех stop от standby "отличаются только ресетом контроллера при пробуждении". То ли китайцам опять лень писать документацию, то ли периферия сама по себе не сбрасывается. Это было бы странно.
0
-31 / 2 / 2
Регистрация: 05.09.2018
Сообщений: 184
17.12.2024, 11:08  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Возможно, этот код у вас сработает:
Добрый день! Наконец появилось на чём попробовать. Код не заработал...
А вот так вышло:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void T1_INI(void)
{
 /* 1. Включение тактирования GPIOE и TIM1 */
    RCC->AHB4ENR |= RCC_AHB4ENR_GPIOEEN;   // Тактирование GPIOE
    RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;    // Тактирование TIM1
 
    /* 2. Настройка ножки PE9 в альтернативном режиме AF1 */
    GPIOE->MODER &= ~(GPIO_MODER_MODE9);   // Очистка битов MODER9
    GPIOE->MODER |= GPIO_MODER_MODE9_1;    // Альтернативный режим (10)
 
    GPIOE->AFR[1] &= ~(GPIO_AFRH_AFSEL9);  // Очистка битов AFRH9
    GPIOE->AFR[1] |= (1 << GPIO_AFRH_AFSEL9_Pos);  // AF1 для TIM1 Channel 1
 
    GPIOE->OSPEEDR |= GPIO_OSPEEDR_OSPEED9; // Высокая скорость
    GPIOE->PUPDR &= ~(GPIO_PUPDR_PUPD9);    // Без подтяжки
    GPIOE->OTYPER &= ~(GPIO_OTYPER_OT9);    // Push-pull
 
    /* 3. Настройка таймера TIM1 для PWM Generation */
    TIM1->PSC = 0;         // Предделитель: PSC = 170 -> тактовая частота 1 МГц (при 170 МГц TIM1CLK)
    TIM1->ARR = 1000 - 1;        // Авто-перезагрузка: период PWM (1 кГц)
    TIM1->CCR1 = 500;            // Значение сравнения: 50% скважность
    TIM1->CCMR1 &= ~TIM_CCMR1_OC1M;  // Очистка режима вывода
    TIM1->CCMR1 |= (6 << TIM_CCMR1_OC1M_Pos); // PWM mode 1
 
    TIM1->CCER |= TIM_CCER_CC1E;     // Включить выход на Channel 1
    TIM1->CCER &= ~TIM_CCER_CC1P;    // Полярность: активный уровень - высокий
 
    TIM1->BDTR |= TIM_BDTR_MOE;      // Main Output Enable (MOE) для таймеров с выводами
 
    /* 4. Запуск таймера */
    TIM1->CR1 |= TIM_CR1_CEN;        // Включение таймера TIM1
}
0
1516 / 532 / 77
Регистрация: 22.09.2023
Сообщений: 1,694
17.12.2024, 11:25
Цитата Сообщение от iaz5 Посмотреть сообщение
C
1
2
    TIM1->CCMR1 &= ~TIM_CCMR1_OC1M;  // Очистка режима вывода
    TIM1->CCMR1 |= (6 << TIM_CCMR1_OC1M_Pos); // PWM mode 1
Вот зачем это и подобное делать двумя операциями? Регистры описаны как volatile-переменные, компилятор обязан на каждую такою операцию выполнить чтение-модификацию-запись в регистр. То есть этот ваш код выльется в чтение-модификацию-запись-чтение-модификацию-запись. Зачем, если достаточно один раз прочитать и один раз записать? Более того - для инициализации вам не нужно чтение - вы можете указать нужное состояние всех битов и свести все к одной операции записи константы в регистр. И плюсом будет то, что в остальных битах случайно не останется ненужное вам состояние от предыдущей настройки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    TIM1->CCMR1 = 0
        // CC2 compare mode settings
        | 0 * TIM_CCMR1_OC2CE                                   // OCx clear enable, 1 = clear OCxREF by ETRF
        | 0 * (TIM_CCMR1_OC2M & -TIM_CCMR1_OC2M)                // OCx mode, 0: frozen, 1: set OCxREF at TIMx_CNT = TIMx_CCRy,
                                                                // 2: clear OCxREF at TIMx_CNT = TIMx_CCRy,
                                                                // 3: toggle OCxREF at TIMx_CNT = TIMx_CCRy,
                                                                // 4: OCxREF forced low, 5: OCxREF forced high
                                                                // 6: OCxREF active if TIMx_CNT < TIMxCCRy
                                                                // 7: OCxREF inactive if TIMx_CNT < TIMxCCRy
        | 0 * TIM_CCMR1_OC2PE                                   // OCx preload enable
        | 0 * TIM_CCMR1_OC2FE                                   // OCx fast enable
 
        | 0 * (TIM_CCMR1_CC2S & -TIM_CCMR1_CC2S)                // Capture/compare selection, 0: Compare, 1: IC2=TI2, 2: IC2=TI1, 3: IC2=TRC
/*        // CC2 capture mode settings
        | 0 * (TIM_CCMR1_IC2F & -TIM_CCMR1_IC2F)                // ICx filter
        | 0 * (TIM_CCMR1_IC2PSC & -TIM_CCMR1_IC2PSC)            // ICx prescaler, capture on every 2^N event
*/
        // CC1 compare mode settings
        | 0 * TIM_CCMR1_OC1CE                                   // OCx clear enable, 1 = clear OCxREF by ETRF
        | 6 * (TIM_CCMR1_OC1M & -TIM_CCMR1_OC1M)                // OCx mode, 0: frozen, 1: set OCxREF at TIMx_CNT = TIMx_CCRy,
                                                                // 2: clear OCxREF at TIMx_CNT = TIMx_CCRy,
                                                                // 3: toggle OCxREF at TIMx_CNT = TIMx_CCRy,
                                                                // 4: OCxREF forced low, 5: OCxREF forced high
                                                                // 6: OCxREF active if TIMx_CNT < TIMxCCRy
                                                                // 7: OCxREF inactive if TIMx_CNT < TIMxCCRy
        | 0 * TIM_CCMR1_OC1PE                                   // OCx preload enable
        | 0 * TIM_CCMR1_OC1FE                                   // OCx fast enable
 
        | 0 * (TIM_CCMR1_CC1S & -TIM_CCMR1_CC1S)                // Capture/compare selection, 0: Compare, 1: IC1=TI1, 2: IC1=TI2, 3: IC1=TRC
 
/*        // CC1 capture mode settings
        | 0 * (TIM_CCMR1_IC1F & -TIM_CCMR1_IC1F)                // ICx filter
        | 0 * (TIM_CCMR1_IC1PSC & -TIM_CCMR1_IC1PSC)            // ICx prescaler, capture on every 2^N event
*/
        ;
Запись нулей тут можно было бы и опустить, но в таком код пишется один раз и потом копируется из проекта в проект с очень быстрой заменой нулей на нужные значения. А описание всех возможных вариантов в комментариях позволяют не заглядывать перед каждым изменением в документацию.
0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
17.12.2024, 12:12
Цитата Сообщение от iaz5 Посмотреть сообщение
Добрый день! Наконец появилось на чём попробовать. Код не заработал...
То есть единственное, что я забыл - настроить AFIO? Это радует.
Цитата Сообщение от iaz5 Посмотреть сообщение
GPIOE->MODER |= GPIO_MODER_MODE9_1; // Альтернативный режим (10)
Абсолютно нечитаемо. MODE9_1 это что? Не то чтобы в моем примере было сильно лучше, но там хоть макроконстанты прописать можно со временем, я-то просто код усложнять не стал.
Цитата Сообщение от Dushevny Посмотреть сообщение
Вот зачем это и подобное делать двумя операциями? Регистры описаны как volatile-переменные, компилятор обязан на каждую такою операцию выполнить чтение-модификацию-запись в регистр.
Это ж иницилизация, тут пара тактов погоды не сделает. Ели ТСу так нагляднее, пусть.
Цитата Сообщение от Dushevny Посмотреть сообщение
Более того - для инициализации вам не нужно чтение
А вот не так однозначно. Вдруг TIM1->CCMR1 уже настраивался в другом месте для другого канала. Опять-таки, мой пример в этом плох, поскольку чисто тестовый.
Цитата Сообщение от Dushevny Посмотреть сообщение
Запись нулей тут можно было бы и опустить, но в таком код пишется один раз и потом копируется из проекта в проект
Жесть какая. Я бы уж точно не стал копипастить такую простыню из проекта в проект. Лучше уж написать функции или макросы для настройки нужного режима. Что-то вроде такого: https://github.com/COKPOWEHEU/... ch/timer.h
C
1
2
3
4
5
6
7
8
9
  #define IO    A,11,0,GPIO_APP50
  #define TIM 1,4,TIMO_PWM_NINV
 
  GPIO_config(IO);
  timer_init(TIM, 14400-1, 10000-1);
  timer_chval(TIM) = 1000;
  timer_chcfg(TIM);
  timer_chpol(TIM, IO);
  timer_enable(TIM);
0
1516 / 532 / 77
Регистрация: 22.09.2023
Сообщений: 1,694
17.12.2024, 12:58
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Жесть какая. Я бы уж точно не стал копипастить такую простыню из проекта в проект.
Я тоже когда-то так думал. Очень давно. Сейчас мне проще одним взглядом охватить всю инициализацию, не роясь в забытых внутренностях макросов. Впрочем, хозяин - барин. На вкус и цвет фломастеры разные.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2024, 12:58

увеличение частоты работы оперативки
Добрый день! Ситуация следующая. имеется оперативка 2 планки по 8 гб с частотой 3000 G skill Aegis(разгоняемая) , хотелось бы чтобы...

Алгоритм работы преобразователя частоты
Здравствуйте помогите составить алгоритм работы преобразователя частоты, есть ли у кого какие вопросы, предложения??

Разработка программы для работы с преобразователем частоты
Здравствуйте знатоки! Подкиньте пожалуйста пример работы с преобразователем частоты по протоколу Canbus. Заранее благодарен.

Программа для понижения/повышения частоты работы процессора?
Какая программа может стартуя вместе с виндовс автоматически понижать/повышать частоту работы процессора до заданных мной...

Снижение частоты работы видеокарты R9 280 после разгона
Доброго время суток, пользователи форума. Решил рассказать о странном поведении своей персоналки в условиях разгона. В общем, есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru