STM32 новичку в ARM что к чему
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Нормальное мнение, можно согласиться.
Любопытно: а есть мнение о том, откуда у профи время на выяснение, кто лучше наизусть 243-ю страницу даташита процитирует?
Добавлено after 52 seconds:
P.S. это другое?
Любопытно: а есть мнение о том, откуда у профи время на выяснение, кто лучше наизусть 243-ю страницу даташита процитирует?
Добавлено after 52 seconds:
P.S. это другое?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: STM32 новичку в ARM что к чему
[uquote="Sergi",url="/forum/viewtopic.php?p=4709292#p4709292"]Я бы заменил TIM_SR_CC3IF на TIM_SR_UIF. Мне так понятнее.[/uquote]
не будет работать. "А так да - шутка юмора."
не будет работать. "А так да - шутка юмора."
насчет говнокода -- все дружно согласились. насчет того, что он делает -- далеко не все.Хотя сработать сразу и через счет TIM1 может быть важно.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
И вас что-то удивляет? Думаете, есть много желающих нырнуть в говно, чтобы нащупать на его дне какие-то секреты?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: STM32 новичку в ARM что к чему
ваше отношение понятно.

Спойлер

- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Интересно, когда до вас дойдет, что моё отношение есть квинтэссенция общего отношения новичков к тому, чем вы занимаетесь?! И ваше отношение полностью укладывается в это...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: STM32 новичку в ARM что к чему
"отношения новичков.." вечных новичков.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Конечно, вечных. Всю жизнь непрерывно всё пытаешься что-то новое освоить... Догнать прогресс... А он, собака, убегает слишком быстро...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: STM32 новичку в ARM что к чему
давайте я вам еще странного подкину? например, мне иногда начинает действовать на нервы довольно длинное написание всяческих имен и я прибегаю к сокращениям:
теперь код может быть слегка компактнее без потери смысла:
так же можно можно переработать инициализацию и привести ее к виду:
это эквивалент записи
ничего особенного, но чуть-чуть короче. и, да, никого ни к чему не призываю. просто напоминаю, что так можно.
Спойлер
переопределяем в укромном месте все или только используемые имена периферии:Код: Выделить всё
/* ==== 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 что к чему
Бедный тот, кому, возможно, придётся вникать в понаписанное Вами.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Лучше бы рассказали, чем руководствоваться при выборе варианта работы USART через DMA или традиционно по прерываниям. Например, я анализирую код предшественника и вижу, что USART у него сделан через DMA, хотя какого-то напряженного обмена быть не может, т.к. скорость не выше 115200 и пакеты в среднем 8 байт. В итоге код очень сложный для новичка (меня), т.к. проследить связность сложно, все в разных модулях, и не очевидно, по каким событиям тот или иной код вызывается. В библиотечке modbus, которую я применил, все сделано на прерываниях, и разобраться гораздо проще, тем более, что там все на событиях RTOS. В доке на эту либо говорится, что DMA желательно применять при скоростях больше 115200, хотя обоснования так же нет.
В случае RTOS и упомянутых скоростей еще проще можно вообще поллингом данных в отдельной задаче обойтись, и ничего, имхо, не потерять, а приобрести полную прозрачность кода.
Так что определяет метод работы? Какая логика?
Добавлено after 5 minutes 5 seconds:
Просто в периферии stm32 огромное число разных режимов "можно то и можно это", но не всегда очевидно, для каких задач то или это предпочтительнее.
В случае RTOS и упомянутых скоростей еще проще можно вообще поллингом данных в отдельной задаче обойтись, и ничего, имхо, не потерять, а приобрести полную прозрачность кода.
Так что определяет метод работы? Какая логика?
Добавлено after 5 minutes 5 seconds:
Просто в периферии stm32 огромное число разных режимов "можно то и можно это", но не всегда очевидно, для каких задач то или это предпочтительнее.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: STM32 новичку в ARM что к чему
[uquote="smacorp",url="/forum/viewtopic.php?p=4711080#p4711080"]Бедный тот, кому, возможно, придётся вникать в понаписанное Вами.[/uquote]
мне кажется вы принижаете когнитивные способности "бедного того". данный простой пример не привносит новые сущности и вникать тут не во что.
смотрим на референс:

смотрим на код:
насколько мощно здесь зашифрована суть действия, если учесть, что в правой части выражения находится стандартный для си инициализатор структуры?
мне кажется вы принижаете когнитивные способности "бедного того". данный простой пример не привносит новые сущности и вникать тут не во что.
смотрим на референс:
смотрим на код:
Код: Выделить всё
T1.CR1 = (T1_CR1_t){.DIR=1, .OPM=1, .CEN=1}.r;- Вложения
-
- CR1.PNG
- (5.24 КБ) 428 скачиваний
Re: STM32 новичку в ARM что к чему
[uquote="smacorp",url="/forum/viewtopic.php?p=4711080#p4711080"]Бедный тот, кому, возможно, придётся вникать в понаписанное Вами.[/uquote]"Что написано Петром, то не вычерпать ведром!"
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]Например, я анализирую код предшественника и вижу, что USART у него сделан через DMA, хотя какого-то напряженного обмена быть не может, т.к. скорость не выше 115200 и пакеты в среднем 8 байт.[/uquote]Причём тут какой-то "напряжённый обмен" и длина пакетов? Если речь о STM32 с их примитивным UART, в котором даже нет FIFO, то даже без некоего "напряжённого обмена" с кадрами любой длины, при скорости 115200 бод, средняя частота прерываний от UART составит 115200/10*2 = ~23кГц. Что может быть слишком много для некоторых применений.
Достаточно если в какой-то момент времени сумма длительностей более приоритетных ISR + запрет прерывания в фоне будет >= ~87 мкс - как тут же получите потерю принимаемых данных. Если будете работать без DMA. А DMA спасёт от этого.
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]Так что определяет метод работы? Какая логика?[/uquote]Написал один раз драйвер UART с DMA и далее пользуюсь им во всех проектах на STM32. Хоть с 921600 бод, хоть с меньшими скоростями. Не переписывая каждый раз. Вот и вся логика. Это лучше, чем под каждый проект ваять и отлаживать заново.
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]все в разных модулях[/uquote]Это странно. У меня весь код драйвера UART - в одном файле (точнее двух = uart.h + uart.cpp). Не знаю - зачем его по разным файлам размазывать?
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]В случае RTOS и упомянутых скоростей еще проще можно вообще поллингом данных в отдельной задаче обойтись[/uquote]Да ладно??? Серьёзно?
А ничего, что частота событий будет ~23 кГц? Совсем не икается?
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]Просто в периферии stm32 огромное число разных режимов "можно то и можно это"[/uquote]В периферии STM32 очень мало разных режимов работы. Очень примитивная периферия. Не видели вы периферии, в которой всего много....
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]Например, я анализирую код предшественника и вижу, что USART у него сделан через DMA, хотя какого-то напряженного обмена быть не может, т.к. скорость не выше 115200 и пакеты в среднем 8 байт.[/uquote]Причём тут какой-то "напряжённый обмен" и длина пакетов? Если речь о STM32 с их примитивным UART, в котором даже нет FIFO, то даже без некоего "напряжённого обмена" с кадрами любой длины, при скорости 115200 бод, средняя частота прерываний от UART составит 115200/10*2 = ~23кГц. Что может быть слишком много для некоторых применений.
Достаточно если в какой-то момент времени сумма длительностей более приоритетных ISR + запрет прерывания в фоне будет >= ~87 мкс - как тут же получите потерю принимаемых данных. Если будете работать без DMA. А DMA спасёт от этого.
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]Так что определяет метод работы? Какая логика?[/uquote]Написал один раз драйвер UART с DMA и далее пользуюсь им во всех проектах на STM32. Хоть с 921600 бод, хоть с меньшими скоростями. Не переписывая каждый раз. Вот и вся логика. Это лучше, чем под каждый проект ваять и отлаживать заново.
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]все в разных модулях[/uquote]Это странно. У меня весь код драйвера UART - в одном файле (точнее двух = uart.h + uart.cpp). Не знаю - зачем его по разным файлам размазывать?
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]В случае RTOS и упомянутых скоростей еще проще можно вообще поллингом данных в отдельной задаче обойтись[/uquote]Да ладно??? Серьёзно?
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]Просто в периферии stm32 огромное число разных режимов "можно то и можно это"[/uquote]В периферии STM32 очень мало разных режимов работы. Очень примитивная периферия. Не видели вы периферии, в которой всего много....
Re: STM32 новичку в ARM что к чему
При работе через DMA я получу одно прерывание в конце пакета, вы- 8. При отправке мне нужно обработать 2 прерывания,вам- 8. Заметьте, что количество прерываний при работе через DMA не зависит от длины пакета. Я уже не говорю о том, что при работе через DMA нет разницы, на какой скорости работает работает UART, 9600 бит/с или 10 Мбит/с.ARV писал(а):пакеты в среднем 8 байт
Поэтому логично использовать С++, тогда весь код оказывается в одном модуле.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();
}
}
Применительно к МК уровня STM32 как раз нетрадиционным способом является приём-отправка одного байта с генерацией прерывания. Да, это возможно, как и наличие по мнению целого ЕС аж 42 гендеров. С ростом тактовой частоты процессоров прерывания становятся очень дорогими в части потери производительности из-за сброса кэшей опережающей выборки. Поэтому весь обмен через UART логично делать с использованием DMA, даже консоль.ARV писал(а):Лучше бы рассказали, чем руководствоваться при выборе варианта работы USART через DMA или традиционно по прерываниям
Код: Выделить всё
class ConIO : public MB_RTU_UART, Task
{
};
Re: STM32 новичку в ARM что к чему
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]В случае RTOS и упомянутых скоростей еще проще можно вообще поллингом данных в отдельной задаче обойтись, и ничего, имхо, не потерять, а приобрести полную прозрачность кода.[/uquote]Для новичка полезнее разобраться в работе того, что имеется. А не пытаться перекостыливать работающее хорошее решение, на кривое поделие. Иначе - так навсегда новичком и останется.
Перекостыливание на более простой вариант (потому как "не понимаю как оно работает") - это не развитие, а деградация.
Добавлено after 2 minutes 57 seconds:
[uquote="tonyk",url="/forum/viewtopic.php?p=4711162#p4711162"]Поэтому логично использовать С++, тогда весь код оказывается в одном модуле.[/uquote]А какая связь? Си или си++ - и то и другое можно в одном модуле написать.
Добавлено after 6 minutes 44 seconds:
[uquote="tonyk",url="/forum/viewtopic.php?p=4711162#p4711162"]Применительно к МК уровня STM32 как раз нетрадиционным способом является приём-отправка одного байта с генерацией прерывания. Да, это возможно, как и наличие по мнению целого ЕС аж 42 гендеров.[/uquote]И как же вы STM32 пользуетесь? Который в этом самом ЕС и разработан?
Почему не чем-то православным?
Перекостыливание на более простой вариант (потому как "не понимаю как оно работает") - это не развитие, а деградация.
Добавлено after 2 minutes 57 seconds:
[uquote="tonyk",url="/forum/viewtopic.php?p=4711162#p4711162"]Поэтому логично использовать С++, тогда весь код оказывается в одном модуле.[/uquote]А какая связь? Си или си++ - и то и другое можно в одном модуле написать.
Добавлено after 6 minutes 44 seconds:
[uquote="tonyk",url="/forum/viewtopic.php?p=4711162#p4711162"]Применительно к МК уровня STM32 как раз нетрадиционным способом является приём-отправка одного байта с генерацией прерывания. Да, это возможно, как и наличие по мнению целого ЕС аж 42 гендеров.[/uquote]И как же вы STM32 пользуетесь? Который в этом самом ЕС и разработан?
Почему не чем-то православным?
Re: STM32 новичку в ARM что к чему
[uquote="jcxz",url="/forum/viewtopic.php?p=4711160#p4711160"]Достаточно если в какой-то момент времени сумма длительностей более приоритетных ISR + запрет прерывания в фоне будет >= ~87 мкс - как тут же получите потерю принимаемых данных.[/uquote]
какой-то притянутый пример. 87мкс на 72мгц -- это что-то в районе 6 тыс инструкций. невозможно понять, кому и зачем может потребоваться такой объем работ при запрещенных прерываниях.
какой-то притянутый пример. 87мкс на 72мгц -- это что-то в районе 6 тыс инструкций. невозможно понять, кому и зачем может потребоваться такой объем работ при запрещенных прерываниях.
сгущаете. чтобы пользоваться stm32, вовсе не обязательно долбиться куда попало.И как же вы STM32 пользуетесь? Который в этом самом ЕС и разработан?
Re: STM32 новичку в ARM что к чему
[uquote="ARV",url="/forum/viewtopic.php?p=4711122#p4711122"]хотя какого-то напряженного обмена быть не может, т.к. скорость не выше 115200 и пакеты в среднем 8 байт.[/uquote]
здесь скорее всего писал какой-то такой человек:
здесь скорее всего писал какой-то такой человек:
jcxz писал(а):Написал один раз драйвер UART с DMA и далее пользуюсь им во всех проектах на STM32. Хоть с 921600 бод,
Re: STM32 новичку в ARM что к чему
[uquote="a5021",url="/forum/viewtopic.php?p=4711176#p4711176"][uquote="jcxz",url="/forum/viewtopic.php?p=4711160#p4711160"]Достаточно если в какой-то момент времени сумма длительностей более приоритетных ISR + запрет прерывания в фоне будет >= ~87 мкс - как тут же получите потерю принимаемых данных.[/uquote]
какой-то притянутый пример. 87мкс на 72мгц -- это что-то в районе 6 тыс инструкций. невозможно понять, кому и зачем может потребоваться такой объем работ при
запрещенных прерываниях.[/uquote]Научитесь внимательнее читать то, на что отвечаете:
"сумма длительностей более приоритетных ISR + запрет прерывания в фоне."
Что такое "более приоритетные ISR" (более приоритетные чем UART) - понимаете?
Это когда какое-то событие должно быть обработано срочно, с минимальной задержкой.
И это не "в районе 6 тыс инструкций", а как правило - гораздо меньше. Читаем систему команд ARM.
На счёт "притянутости за уши": Обычная RTOS, упоминавшаяся здесь, может запретить прерывания (если критические секции в ней так организованы) на несколько сотен тактов запросто. А некоторые - может быть и более тысячи тактов в каких-то случаях.
какой-то притянутый пример. 87мкс на 72мгц -- это что-то в районе 6 тыс инструкций. невозможно понять, кому и зачем может потребоваться такой объем работ при
запрещенных прерываниях.[/uquote]Научитесь внимательнее читать то, на что отвечаете:
"сумма длительностей более приоритетных ISR + запрет прерывания в фоне."
Что такое "более приоритетные ISR" (более приоритетные чем UART) - понимаете?
Это когда какое-то событие должно быть обработано срочно, с минимальной задержкой.
И это не "в районе 6 тыс инструкций", а как правило - гораздо меньше. Читаем систему команд ARM.
На счёт "притянутости за уши": Обычная RTOS, упоминавшаяся здесь, может запретить прерывания (если критические секции в ней так организованы) на несколько сотен тактов запросто. А некоторые - может быть и более тысячи тактов в каких-то случаях.
Re: STM32 новичку в ARM что к чему
[uquote="a5021",url="/forum/viewtopic.php?p=4711156#p4711156"]смотрим на референс:

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

смотрим на код:
Код: Выделить всё
T1.CR1 = (T1_CR1_t){.DIR=1, .OPM=1, .CEN=1}.r;Пять простых и однобитовых полей - это слишком просто. Покажите свою мощную шифровку на примере SMCR, где у трех полей больше десятка значений )
- Вложения
-
- tim1.png
- (11.35 КБ) 281 скачивание
Re: STM32 новичку в ARM что к чему
[uquote="jcxz",url="/forum/viewtopic.php?p=4711195#p4711195"]Что такое "более приоритетные ISR" (более приоритетные чем UART) - понимаете?[/uquote]
понимаю я следующее: тому, кто допускает блокирование прерываний на 87мкс, вне зависимости от ситуации, лучше чем-то другим заняться, а не про стм32 рассуждать.. 87мкс в данном контексте -- это архитектурный просёр размером с галактику.
понимаю я следующее: тому, кто допускает блокирование прерываний на 87мкс, вне зависимости от ситуации, лучше чем-то другим заняться, а не про стм32 рассуждать.. 87мкс в данном контексте -- это архитектурный просёр размером с галактику.