Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 новичку в ARM что к чему
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср июн 18, 2025 20:09:50

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8798 ]     ... , , , 437, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс апр 27, 2025 20:51:23 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18395
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Нормальное мнение, можно согласиться.

Любопытно: а есть мнение о том, откуда у профи время на выяснение, кто лучше наизусть 243-ю страницу даташита процитирует?

Добавлено after 52 seconds:
P.S. это другое?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт май 02, 2025 14:52:03 
Друг Кота

Карма: 20
Рейтинг сообщений: 229
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6434
Рейтинг сообщения: 0
Я бы заменил TIM_SR_CC3IF на TIM_SR_UIF. Мне так понятнее.

не будет работать. "А так да - шутка юмора."

Цитата:
Хотя сработать сразу и через счет TIM1 может быть важно.

насчет говнокода -- все дружно согласились. насчет того, что он делает -- далеко не все.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт май 02, 2025 15:25:41 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18395
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
И вас что-то удивляет? Думаете, есть много желающих нырнуть в говно, чтобы нащупать на его дне какие-то секреты?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт май 02, 2025 17:55:15 
Друг Кота

Карма: 20
Рейтинг сообщений: 229
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6434
Рейтинг сообщения: 0
ваше отношение понятно.
СпойлерИзображение


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт май 02, 2025 18:56:26 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18395
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Интересно, когда до вас дойдет, что моё отношение есть квинтэссенция общего отношения новичков к тому, чем вы занимаетесь?! И ваше отношение полностью укладывается в это...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт май 02, 2025 19:06:02 
Друг Кота

Карма: 20
Рейтинг сообщений: 229
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6434
Рейтинг сообщения: 0
"отношения новичков.." вечных новичков.


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт май 02, 2025 21:22:09 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18395
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Конечно, вечных. Всю жизнь непрерывно всё пытаешься что-то новое освоить... Догнать прогресс... А он, собака, убегает слишком быстро...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт май 02, 2025 21:55:38 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 178
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3377
Рейтинг сообщения: 0
ARV, вам STM32 интересны, или срач?
Может вам лучше пойти в Мяяяу :) или сразу в Чистилище! :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт май 02, 2025 23:40:28 
Друг Кота

Карма: 20
Рейтинг сообщений: 229
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6434
Рейтинг сообщения: 0
давайте я вам еще странного подкину? например, мне иногда начинает действовать на нервы довольно длинное написание всяческих имен и я прибегаю к сокращениям:
Спойлерпереопределяем в укромном месте все или только используемые имена периферии:
Код:
/* ==== DMA Channel Registers ========= */
#define D11 (*DMA1_Channel1) /* DMA1 Channel 1 (0x40020008)                 */
#define D12 (*DMA1_Channel2) /* DMA1 Channel 2 (0x4002001C)                 */
#define D13 (*DMA1_Channel3) /* DMA1 Channel 3 (0x40020030)                 */
#define D14 (*DMA1_Channel4) /* DMA1 Channel 4 (0x40020044)                 */
#define D15 (*DMA1_Channel5) /* DMA1 Channel 5 (0x40020058)                 */
#define D16 (*DMA1_Channel6) /* DMA1 Channel 6 (0x4002006C)                 */
#define D17 (*DMA1_Channel7) /* DMA1 Channel 7 (0x40020080)                 */

/* ================== Analog/Digital Converters ========= */
#define A1  (*ADC1)          /* ADC1 (0x40012400)                           */
#define A2  (*ADC2)          /* ADC2 (0x40012800)                           */
#define A   (*AFIO)          /* Alternate Function I/O (0x40010000)         */

/* ================== Core System Peripherals =========== */
#define B   (*BKP)           /* Backup Registers (0x40006C00)               */
#define C   (*CRC)           /* CRC Calculation Unit (0x40023000)           */
#define C1  (*CAN1)          /* CAN1 Controller (0x40006400)                */
#define D   (*DBGMCU)        /* Debug MCU (0xE0042000)                      */
#define E   (*EXTI)          /* External Interrupts (0x40010400)            */
#define F   (*FLASH)         /* Flash Memory (0x40022000)                   */

/* === GPIO Port Registers ============ */
#define PA  (*GPIOA)         /* GPIO Port A (0x40010800)                    */
#define PB  (*GPIOB)         /* GPIO Port B (0x40010C00)                    */
#define PC  (*GPIOC)         /* GPIO Port C (0x40011000)                    */
#define PD  (*GPIOD)         /* GPIO Port D (0x40011400)                    */

/* =================== Communication Interfaces ========= */
#define I1  (*I2C1)          /* I2C1 (0x40005400)                           */
#define I2  (*I2C2)          /* I2C2 (0x40005800)                           */
#define I   (*IWDG)          /* Independent Watchdog (0x40003000)           */

/* == Option Byte/Flash =============== */
#define O   (*OB)            /* Option Bytes (0x1FFFF800)                   */

/* ================= Power/RCC/RTC Management =========== */
#define P   (*PWR)           /* Power Control (0x40007000)                  */
#define R   (*RCC)           /* Reset & Clock Control (0x40021000)          */
#define RT  (*RTC)           /* Real-Time Clock (0x40002800)                */

/* == SPI Controllers ================= */
#define S1  (*SPI1)          /* SPI1 (0x40013000)                           */
#define S2  (*SPI2)          /* SPI2 (0x40003800)                           */

/* === Timer Modules ================== */
#define T1  (*TIM1)          /* Timer 1 (0x40012C00)                        */
#define T2  (*TIM2)          /* Timer 2 (0x40000000)                        */
#define T3  (*TIM3)          /* Timer 3 (0x40000400)                        */
#define T4  (*TIM4)          /* Timer 4 (0x40000800)                        */

/* == USB Controller ================== */
#define U   (*USB)           /* USB Device (0x40005C00)                     */

/* =================== USART Controllers ================ */
#define U1  (*USART1)        /* USART1 (0x40013800)                         */
#define U2  (*USART2)        /* USART2 (0x40004400)                         */
#define U3  (*USART3)        /* USART3 (0x40004800)                         */

/* == Watchdog Timers ================= */
#define W   (*WWDG)          /* Window Watchdog (0x40002C00)                */


теперь код может быть слегка компактнее без потери смысла:

Код:
  if (PA.IDR & 1) {
    T1.PSC = 7999;
    T1.ARR = 999;
    T1.CR1 = 1;
  }


так же можно можно переработать инициализацию и привести ее к виду:
Код:
  T1.CR1 = (T1_CR1_t){.DIR=1, .OPM=1, .CEN=1}.r;

это эквивалент записи
Код:
  TIM1->CR1 = TIM_CR1_DIR | TIM_CR_OPM | TIM_CR1_CEN;

ничего особенного, но чуть-чуть короче. и, да, никого ни к чему не призываю. просто напоминаю, что так можно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 00:52:32 
Друг Кота
Аватар пользователя

Карма: 61
Рейтинг сообщений: 1533
Зарегистрирован: Вт окт 22, 2013 04:37:23
Сообщений: 3300
Откуда: Казань
Рейтинг сообщения: 0
Бедный тот, кому, возможно, придётся вникать в понаписанное Вами.

_________________
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезисты Ordyl Alpha 350 и AM 140.
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльная маска XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 08:36:01 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18395
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Лучше бы рассказали, чем руководствоваться при выборе варианта работы USART через DMA или традиционно по прерываниям. Например, я анализирую код предшественника и вижу, что USART у него сделан через DMA, хотя какого-то напряженного обмена быть не может, т.к. скорость не выше 115200 и пакеты в среднем 8 байт. В итоге код очень сложный для новичка (меня), т.к. проследить связность сложно, все в разных модулях, и не очевидно, по каким событиям тот или иной код вызывается. В библиотечке modbus, которую я применил, все сделано на прерываниях, и разобраться гораздо проще, тем более, что там все на событиях RTOS. В доке на эту либо говорится, что DMA желательно применять при скоростях больше 115200, хотя обоснования так же нет.
В случае RTOS и упомянутых скоростей еще проще можно вообще поллингом данных в отдельной задаче обойтись, и ничего, имхо, не потерять, а приобрести полную прозрачность кода.

Так что определяет метод работы? Какая логика?

Добавлено after 5 minutes 5 seconds:
Просто в периферии stm32 огромное число разных режимов "можно то и можно это", но не всегда очевидно, для каких задач то или это предпочтительнее.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 10:37:44 
Друг Кота

Карма: 20
Рейтинг сообщений: 229
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6434
Рейтинг сообщения: 0
Бедный тот, кому, возможно, придётся вникать в понаписанное Вами.

мне кажется вы принижаете когнитивные способности "бедного того". данный простой пример не привносит новые сущности и вникать тут не во что.
смотрим на референс:
Изображение
смотрим на код:
Код:
T1.CR1 = (T1_CR1_t){.DIR=1, .OPM=1, .CEN=1}.r;

насколько мощно здесь зашифрована суть действия, если учесть, что в правой части выражения находится стандартный для си инициализатор структуры?


Вложения:
CR1.PNG [5.24 KiB]
Скачиваний: 345
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 10:44:35 
Это не хвост, это антенна

Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1483
Рейтинг сообщения: 0
Бедный тот, кому, возможно, придётся вникать в понаписанное Вами.
"Что написано Петром, то не вычерпать ведром!" :)))

Например, я анализирую код предшественника и вижу, что USART у него сделан через DMA, хотя какого-то напряженного обмена быть не может, т.к. скорость не выше 115200 и пакеты в среднем 8 байт.
Причём тут какой-то "напряжённый обмен" и длина пакетов? Если речь о STM32 с их примитивным UART, в котором даже нет FIFO, то даже без некоего "напряжённого обмена" с кадрами любой длины, при скорости 115200 бод, средняя частота прерываний от UART составит 115200/10*2 = ~23кГц. Что может быть слишком много для некоторых применений.
Достаточно если в какой-то момент времени сумма длительностей более приоритетных ISR + запрет прерывания в фоне будет >= ~87 мкс - как тут же получите потерю принимаемых данных. Если будете работать без DMA. А DMA спасёт от этого.

Так что определяет метод работы? Какая логика?
Написал один раз драйвер UART с DMA и далее пользуюсь им во всех проектах на STM32. Хоть с 921600 бод, хоть с меньшими скоростями. Не переписывая каждый раз. Вот и вся логика. Это лучше, чем под каждый проект ваять и отлаживать заново.

все в разных модулях
Это странно. У меня весь код драйвера UART - в одном файле (точнее двух = uart.h + uart.cpp). Не знаю - зачем его по разным файлам размазывать?

В случае RTOS и упомянутых скоростей еще проще можно вообще поллингом данных в отдельной задаче обойтись
Да ладно??? Серьёзно? :shock: А ничего, что частота событий будет ~23 кГц? Совсем не икается? 8)

Просто в периферии stm32 огромное число разных режимов "можно то и можно это"
В периферии STM32 очень мало разных режимов работы. Очень примитивная периферия. Не видели вы периферии, в которой всего много....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 10:47:16 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1211
Рейтинг сообщения: 0
ARV писал(а):
пакеты в среднем 8 байт

При работе через DMA я получу одно прерывание в конце пакета, вы- 8. При отправке мне нужно обработать 2 прерывания,вам- 8. Заметьте, что количество прерываний при работе через DMA не зависит от длины пакета. Я уже не говорю о том, что при работе через DMA нет разницы, на какой скорости работает работает UART, 9600 бит/с или 10 Мбит/с.
ARV писал(а):
все в разных модулях

Поэтому логично использовать С++, тогда весь код оказывается в одном модуле.
Спойлер
Код:
// Заголовок


class UART_base : public AbstractTransport, protected IRQ
{
    .......
        //----------
        //      Читает в буфер buff размером buffSize байты из буфера приёмника.
        //      Работает в неблокирующем режиме!
        //      Возвращает количество прочитанных байт или ноль в случае
        // отсутствия доступных для чтения данных.
        virtual int16
        receive
        (
            void*   buff,
            int16   buffSize,
            MODE    mode        = NON_BLOCK
        )
        = 0;

        //----------
        //      Записывает buffSize байт из буфера buff в буфера передатчика.
        //      Работает в неблокирующем режиме!
        //      Возвращает количество записанных байт или ноль в случае
        // невозможности записи. lastError указывает на ошибку.
        //      Перед вызовом send(..) во избежании склеивания отправляемых
        // посылок, необходимо вызывать getAvailableTxBytes(..) для проверки
        // того, что буфер передатчика пуст.
        virtual int16
        send
        (
            void*   buff,
            int16   buffSize,
            MODE    mode     = NON_BLOCK
        )
        = 0;
    .......
};

//===============
// Реализация.


int16 MB_RTU_UART::send
(
    void*       _buff,
    int16       _buffSize,
    MODE        _mode
)
{
    ....
}


int16 MB_RTU_UART::receive
(
    void*   _buff,
    int16   _buffSize,
    MODE    _mode
)
{
    ....
}


void MB_RTU_UART::IRQ_Handler( void )
{
    if( usart == 0 )
    {
        abort();
    }

    IRQn_Type
        irq = IRQ::getActiveIRQn() ;

    if( irq == IRQn_dma_tx )
    {
        // Обработка прерывания от потока ПДП передатчика.
        ....
    }
    else if( irq == usart_IRQn )
    {
        ....
    }
    else
    {
        // Чушь какая-то. Поймали прерывание, на которое не подписывались.
        // Занавес!
        asm( "nop" );
        abort();
    }
}


ARV писал(а):
Лучше бы рассказали, чем руководствоваться при выборе варианта работы USART через DMA или традиционно по прерываниям

Применительно к МК уровня STM32 как раз нетрадиционным способом является приём-отправка одного байта с генерацией прерывания. Да, это возможно, как и наличие по мнению целого ЕС аж 42 гендеров. С ростом тактовой частоты процессоров прерывания становятся очень дорогими в части потери производительности из-за сброса кэшей опережающей выборки. Поэтому весь обмен через UART логично делать с использованием DMA, даже консоль.
Код:
class ConIO : public MB_RTU_UART, Task
{
};

Обратите внимание, что консоль использует методы приёма-отправки данных из класса Модбас, в котором весь обмен идёт с использованием DMA.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 10:57:27 
Это не хвост, это антенна

Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1483
Рейтинг сообщения: 0
В случае RTOS и упомянутых скоростей еще проще можно вообще поллингом данных в отдельной задаче обойтись, и ничего, имхо, не потерять, а приобрести полную прозрачность кода.
Для новичка полезнее разобраться в работе того, что имеется. А не пытаться перекостыливать работающее хорошее решение, на кривое поделие. Иначе - так навсегда новичком и останется.
Перекостыливание на более простой вариант (потому как "не понимаю как оно работает") - это не развитие, а деградация.

Добавлено after 2 minutes 57 seconds:
Поэтому логично использовать С++, тогда весь код оказывается в одном модуле.
А какая связь? Си или си++ - и то и другое можно в одном модуле написать.

Добавлено after 6 minutes 44 seconds:
Применительно к МК уровня STM32 как раз нетрадиционным способом является приём-отправка одного байта с генерацией прерывания. Да, это возможно, как и наличие по мнению целого ЕС аж 42 гендеров.
И как же вы STM32 пользуетесь? Который в этом самом ЕС и разработан? 8)
Почему не чем-то православным? :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 11:55:42 
Друг Кота

Карма: 20
Рейтинг сообщений: 229
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6434
Рейтинг сообщения: 0
Достаточно если в какой-то момент времени сумма длительностей более приоритетных ISR + запрет прерывания в фоне будет >= ~87 мкс - как тут же получите потерю принимаемых данных.

какой-то притянутый пример. 87мкс на 72мгц -- это что-то в районе 6 тыс инструкций. невозможно понять, кому и зачем может потребоваться такой объем работ при запрещенных прерываниях.
Цитата:
И как же вы STM32 пользуетесь? Который в этом самом ЕС и разработан?

сгущаете. чтобы пользоваться stm32, вовсе не обязательно долбиться куда попало.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 12:01:09 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 244
Рейтинг сообщения: 0
хотя какого-то напряженного обмена быть не может, т.к. скорость не выше 115200 и пакеты в среднем 8 байт.

здесь скорее всего писал какой-то такой человек:
jcxz писал(а):
Написал один раз драйвер UART с DMA и далее пользуюсь им во всех проектах на STM32. Хоть с 921600 бод,


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 12:54:58 
Это не хвост, это антенна

Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1483
Рейтинг сообщения: 0
Достаточно если в какой-то момент времени сумма длительностей более приоритетных ISR + запрет прерывания в фоне будет >= ~87 мкс - как тут же получите потерю принимаемых данных.

какой-то притянутый пример. 87мкс на 72мгц -- это что-то в районе 6 тыс инструкций. невозможно понять, кому и зачем может потребоваться такой объем работ при
запрещенных прерываниях.
Научитесь внимательнее читать то, на что отвечаете:
"сумма длительностей более приоритетных ISR + запрет прерывания в фоне."
Что такое "более приоритетные ISR" (более приоритетные чем UART) - понимаете?
Это когда какое-то событие должно быть обработано срочно, с минимальной задержкой.

И это не "в районе 6 тыс инструкций", а как правило - гораздо меньше. Читаем систему команд ARM.

На счёт "притянутости за уши": Обычная RTOS, упоминавшаяся здесь, может запретить прерывания (если критические секции в ней так организованы) на несколько сотен тактов запросто. А некоторые - может быть и более тысячи тактов в каких-то случаях.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 13:20:58 
Мучитель микросхем

Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 419
Рейтинг сообщения: 0
смотрим на референс:
Изображение
смотрим на код:
Код:
T1.CR1 = (T1_CR1_t){.DIR=1, .OPM=1, .CEN=1}.r;

насколько мощно здесь зашифрована суть действия, если учесть, что в правой части выражения находится стандартный для си инициализатор структуры?

Пять простых и однобитовых полей - это слишком просто. Покажите свою мощную шифровку на примере SMCR, где у трех полей больше десятка значений )

Изображение


Вложения:
tim1.png [11.35 KiB]
Скачиваний: 216
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб май 03, 2025 13:52:58 
Друг Кота

Карма: 20
Рейтинг сообщений: 229
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6434
Рейтинг сообщения: 0
Что такое "более приоритетные ISR" (более приоритетные чем UART) - понимаете?

понимаю я следующее: тому, кто допускает блокирование прерываний на 87мкс, вне зависимости от ситуации, лучше чем-то другим заняться, а не про стм32 рассуждать.. 87мкс в данном контексте -- это архитектурный просёр размером с галактику.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8798 ]     ... , , , 437, , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y