Заказал у двух других продавцов с правильной маркировкой stm32 f103c8t6. И один продован все равно подделку подсунул. Так что маркировка не спасает от подделки уже.
Заказал у двух других продавцов с правильной маркировкой stm32 f103c8t6. И один продован все равно подделку подсунул. Так что маркировка не спасает от подделки уже.
если в лоте было явно указано stm32f103c8t6, а пришли другие чипы - на Али это железное основание для возврата денег.
107,28 руб. 10%OFF | STM32F103C8T6 ARM 32 Cortex-M3 STM32 SWD Minimum System Development Board Module Mini USB Interface For Arduino I/O 72Mhz https://s.click.aliexpress.com/e/bpjdARXG
Чипы те же самые с виду. Как доказать что подделка ХЗ. Оригинальные в среде Ардуино разгоняются до 128МГц, а этот не хочет.
107,28 руб. 10%OFF | STM32F103C8T6 ARM 32 Cortex-M3 STM32 SWD Minimum System Development Board Module Mini USB Interface For Arduino I/O 72Mhz https://s.click.aliexpress.com/e/bpjdARXG Чипы те же самые с виду. Как доказать что подделка ХЗ. Оригинальные в среде Ардуино разгоняются до 128МГц, а этот не хочет.
ваша ссылка открывает первую страницу Али, а не лот.
Не понял, что значит "чипы те же самые с виду"? Что, все-таки, на них написано - stm32 или cs32?
Или претензия только в том, что они "не разгоняются"? - так это даже производитель не гарантирует. иначе продавал бы их как 128МГц :)))
107,28 руб. 10%OFF | STM32F103C8T6 ARM 32 Cortex-M3 STM32 SWD Minimum System Development Board Module Mini USB Interface For Arduino I/O 72Mhz https://s.click.aliexpress.com/e/b1rnfiFs
Все буквы и цифры как на оригинале написано сверху тем же шрифтом. Есть с чем сравнить дома.
b707, у него в названии ссылки правильный адрес, а в содержание самой ссылки мусор. Этот глюк часто бывает, когда пытаешься вставить готовую ссылку. To: Densl надежнее будет написать слово ссылка, выделить его мышкой, и в меню редактирования нажать кнопку "вставить ссылку"
Кто использовал в Ардуино с адоном Роджера Кларка все 3 UART? Как стабильность? У меня похоже то тайминги сбиваются и из-за этого не прошивается, приходиться перезапускать IDE, то не все UART работают. Несколько раз думал что сжёг порт, все выпаивал, проверял отдельно и опять впаивал. У меня Arduino 1.8.5.
Всем привет. Изучаю STM32 с Arduino. Непонятно как работать с портами побитово.
К примеру вместо digitalWrite в ардуине пишем что-то типа: PORTB = B00010000 или PORTB != 1 << 5.
Пробовал на STM32 сделать разными способами, писал и GPIOB и PB и PORTB - никак не получается. Надо знать к чему присваивать, пытался найти в библиотеках - ничего не понял)
Всем привет. Изучаю STM32 с Arduino. Непонятно как работать с портами побитово.
К примеру вместо digitalWrite в ардуине пишем что-то типа: PORTB = B00010000 или PORTB != 1 << 5.
Пробовал на STM32 сделать разными способами, писал и GPIOB и PB и PORTB - никак не получается. Надо знать к чему присваивать, пытался найти в библиотеках - ничего не понял)
Как давно запись в ODR стала не атомарной? Цепочка прочитать регистр в переменную ‐ изменить переменную - записать обратно по определению не атомарна. А просто запись в регистр абсолютно эквивалентны. Если не считать, что когда пишешь в ODR то пишешь все разряды и нули и единицы, а когда в BSRR устанавливаются в единицы только те разряды где единицы. А вот установка нулей уже прикольнее. В нули устанавливаются те разряды , где единицы пишутся в BRR. Всё это к 103. В f4xx всё немного по-другому.
Вот именно плохо. Где написано что ODR=GPIO_ODR_ODR_12; не атомарная операция? Я ж написал - GPIOB->ODR |= GPIO_ODR_ODR_12; неатомарная. У этих двух строк огромная разница. Первая за один такт устанавливает двенадцатый бит, остальные обнуляет. Вторая за 3 такта, между которыми может возникнуть прерывание, устанавливает двенадцатый бит, остальные сохраняет. Если я точно знаю какие биты должны быть в выходном регистре мне не обязательно его нужно читать, что бы модифицировать один бит. Почитайте мануал и осознайте, что BRR и BSRR называются регистрами data bitwise handling - побитовая обработка данных. Целый регистр ODR пишется так же атомарно. Но целый. Не отдельные биты.
Не надо ловить меня на фу фу и выкручиввться как глист и переобуваться в воздухе.
Писано для записи/сброса бита в ODR , что в посту 421 , и что никогда не было атомарной и есть RMW.
Если не осознаем разницу- марш учитьматчасть.
Скажите, где в #421 сказано что это действие атомарное? Может быть в #417 был вопрос про атомарную работу? Был вопрос как с портом работать побитово так же как в AVR. Мой ответ точно написал как работать через выходной регистр порта, точно также как и в AVR. Работа с портом в AVR не атомарна. Атомарная работа это плюшка STM, которая аналогов у наны уны не имеет.
dosikus пишет:
Потому что не или. Запись в ODR не атомарная, учи матчасть...
Запись в ODR атомарна. Это написано во всех мануалах. Это Ваша ошибка и выкручиваться надо Вам. Вас ни кто за язык не тянул говорить:" Запись в ODR не атомарная...".
А теперь посмотри в ответ на что сие было писано.
Можно перефразировать для таких умников - твоя запись в ODR.
Про атомарность ты узнал только что, так что крутись не крутись , а врешь именно ты.
И еще, твоя писанина есть фуфло , пиздеж и выкручивания глиста, ибо прямая запись в ODR и BSRR не эквивалентные вещи и приводить их в сравнении может только д.
Обидно однако. У меня шести фазный регулятор, про который я уже писал на форуме, шестью тиристорами дергает через BSRR BRR. Сделан он был три года назад. Так что как минимум три года я знаю об этой возможности.
И вообще ты советуешь нубу манипуляцию битами в ODR, и это когда давным -давно всем известно что это абсолютно не оптимально(насрать на авр ,здесь стм), и вот это ставит твой уровень абсолютно ниже плинтуса
Вы такие умные помощники тут собрались. Мне нужна помощь. Я на stm32 обмен налаживаю по рс 485 и нифига не работает. Моя тема тут на форуме только появилась.
Я уже всё расписал #425 и #427 зачем допрегистры - что бы за одну команду записи можно было манипулировать отдельными битами, не затрагивая другие. Особенно если в порт пишут несколько параллельных процессов. Я наступал на эти грабли, когда на одном порту висел дисплей 1602 и управление тиристорами. Библиотека 1602 писала в ODR и срывала импульсы управления. Пришлось на BSRR переписывать. А ссылки - RM0008 мануал на 103. Fig 15. BSRR и ODR пишутся одной и той же командой. Из мануала ARM Assembly Language это str или ldr, что конкретно можно посмотреть в листинге.
Ссылка где... на атомарность ODR... ась ??? )))))))
nik182 пишет:
Пришлось на BSRR переписывать.
Правильно... потому что нет у ODR никакой атомарности... отродясь... запомни это хорошо...
========
А... и да...
nik182 пишет:
Особенно если в порт пишут несколько параллельных процессов. Я наступал на эти грабли, когда на одном порту висел дисплей 1602 и управление тиристорами. Библиотека 1602 писала в ODR и срывала импульсы управления.
Просто либа гавно... или не вникал в суть...
Если к ODR обращаться как к байту... то вторая половина порта не затрагивается... т.е. атомарность половины порта присутсвует...
Хотя... групповыми операциями с битами можно рулить и через BSRR... как не странно... Это к твоему...
Цитата:
что бы за одну команду записи можно было манипулировать отдельными битами, не затрагивая другие.
Наверно мы по разному понимаем атомарность. Мне мнилось что это не незатрагивание половины порта, а невозможность изменить конечный результат операции из за возникшего во время выполнения операции прерывания и изменения внутри прерывания каких то параметров исходной операции. В этом смысле запись данных в порт ODR не отличается от записи ODR.
Для подтверждения этого утверждения кусок листинга записи 8 16 и 32 разрядных данных в порты BSRR и ODR. Как говорится найдите разницу между атомарным BSRR и не атомарным ODR:
И что? Используя ODR нельзя манипулировать отдельными битами? А как же ардуина? Там манипулируют. Перечитайте #417. Ещё раз спрошу. Где в #417 требование атомарности? Это ты потребовал и утверждал
dosikus пишет:
А теперь посмотри в ответ на что сие было писано. Можно перефразировать для таких умников - твоя запись в ODR. Про атомарность ты узнал только что, так что крутись не крутись , а врешь именно ты. И еще, твоя писанина есть фуфло , пиздеж и выкручивания глиста, ибо прямая запись в ODR и BSRR не эквивалентные вещи и приводить их в сравнении может только д.
и
dosikus пишет:
И вообще ты советуешь нубу манипуляцию битами в ODR, и это когда давным -давно всем известно что это абсолютно не оптимально(насрать на авр ,здесь стм), и вот это ставит твой уровень абсолютно ниже плинтуса
Т.е. Манипулировать битами можно, но это неоптимально?
К тому же, если через BSRR нужно установить несколько разрядов то нужно провести кучу операций. Для единиц просто записать единицы в нижние 16 бит, а для нулей нужно инвертировать 0->1 и сдвинуть полученное в верхние 16 бит 32 разрядного регистра BRSS. Потом атомарно можно всё это записать через BSRR на выходные ноги процессора. Не проще на время GPIOB->ODR |= (1<<12); запретить прерывания? Что будет быстрее? В каждом случае можно выбрать оптимальный вариант.
Наверно мы по разному понимаем атомарность. Мне мнилось что это не незатрагивание половины порта, а невозможность изменить конечный результат операции из за возникшего во время выполнения операции прерывания и изменения внутри прерывания каких то параметров исходной операции.
Твоё понимание (или непонимание) атомарности никого не интересует... есть стандартные определения на этот счёт...
А половиной порта я тебя явно удивил... Бывает !!! )))))))))
Цитата:
В этом смысле запись данных в порт ODR не отличается от записи ODR.
Это ваще перл... заслуживающий особого внимания... )))))))))))))))))))
Так держать !!!
Цитата:
Как говорится найдите разницу между атомарным BSRR и не атомарным ODR
В этом то и разница... что ты эту разницу не видишь... или не понимаешь...
Операции с BSRR и битбэндинг - атомарны... с ODR - нет... Фенит а ля комедия !!!
К тому же, если через BSRR нужно установить несколько разрядов то нужно провести кучу операций. Для единиц просто записать единицы в нижние 16 бит, а для нулей нужно инвертировать 0->1 и сдвинуть полученное в верхние 16 бит 32 разрядного регистра BRSS. Потом атомарно можно всё это записать через BSRR на выходные ноги процессора. Не проще на время GPIOB->ODR |= (1<<12); запретить прерывания? Что будет быстрее? В каждом случае можно выбрать оптимальный вариант.
Ты это серьёзно ??? Или пытаешься на костылях прыгать в высоту ??? )))))))))
Ты это серьёзно ??? Или пытаешься на костылях прыгать в высоту ??? )))))))))
Давай ты приведёшь пример как установить В1010 через переменную, а не константу в 4,5,6,7 разряды порта В с помощью BSRR? И тогда будем посмотреть кто на костылях, а кто нет. А то желающих трындеть много, а привести конкретный пример, опровергающий собеседника, знаний не хватает.
И тогда будем посмотреть кто на костылях, а кто нет.
Ну... пока это ты... не только на костылях... а даже лежачий... которого успешно и с удовольствием пинают... кому не лень... )))))))))
Где признание твоей неправоты ??? Где собственноручное художественное посыпание твоей головы пеплом??? Ась??? )))))))))))))
Цитата:
А то желающих трындеть много, а привести конкретный пример, опровергающий собеседника, знаний не хватает.
Да... ты уже привел пример... как делать не надо... и даже сам сказал... что пришлось переделывать... Что тебе ещё надо??? )))))))))))))
Либа под 1602 виновата??? Не смеши!!! На СТМ32 1602 легко вешается аппаратно!!! И забывается весь это кошмар и ужас с ногодрыгом, атомарностью, делаями, ОДР и прочими шнягами... )))))))))))))))))
Прерывания запрещать??? Да вы батенька в своём уме ли??? Что же это... в 1602 требует такой афигенной срочности??? )))))))))))
Там и так всё делаями усеяно... )))))))))))
Представил твой код... где каждый ногодрыг либы под 1602 обрамлён запретом-разрешением прерывания... Самому не смешно???
короче сделал ))
теперь поробую все с энкодером.
ВСЕ работает всем спасибо !!! ))
Купил готовую плату stm у WAVGAT, и вот засада, не хочет разгоняться до 128 МГц. У них походу какая-то другая схемка платы с МК.
Купил готовую плату stm у WAVGAT, и вот засада, не хочет разгоняться до 128 МГц. У них походу какая-то другая схемка платы с МК.
не схема другая, а скорее всего МК другой, не СТМ, а аналог. О появлении плат СТМ на левых МК кто-то писал тут, по-моему axill
ЗЫ нафига платы у вавгата покупать, уж СТМ-ки то и так копейки стоят.
Мда... Мыши плакали, кололись, но продолжали покупать вавгат...
Во-во, STM тут и не пахнет.
Заказал у двух других продавцов с правильной маркировкой stm32 f103c8t6. И один продован все равно подделку подсунул. Так что маркировка не спасает от подделки уже.
если в лоте было явно указано stm32f103c8t6, а пришли другие чипы - на Али это железное основание для возврата денег.
Ссылку на лоты укажите
107,28 руб. 10%OFF | STM32F103C8T6 ARM 32 Cortex-M3 STM32 SWD Minimum System Development Board Module Mini USB Interface For Arduino I/O 72Mhz
https://s.click.aliexpress.com/e/bpjdARXG
Чипы те же самые с виду. Как доказать что подделка ХЗ. Оригинальные в среде Ардуино разгоняются до 128МГц, а этот не хочет.
RogerClark пишет, что cs32f103 гонится только на 80. В остальном вроде не ругают. Там же кстати можно переведённый даташит качнуть.
ваша ссылка открывает первую страницу Али, а не лот.
Не понял, что значит "чипы те же самые с виду"? Что, все-таки, на них написано - stm32 или cs32?
Или претензия только в том, что они "не разгоняются"? - так это даже производитель не гарантирует. иначе продавал бы их как 128МГц :)))
107,28 руб. 10%OFF | STM32F103C8T6 ARM 32 Cortex-M3 STM32 SWD Minimum System Development Board Module Mini USB Interface For Arduino I/O 72Mhz
https://s.click.aliexpress.com/e/b1rnfiFs
Все буквы и цифры как на оригинале написано сверху тем же шрифтом. Есть с чем сравнить дома.
Ну тогда шансов на спор нет.
да и вообще, на мой взгляд, то что он не гонится - не доказательство подделки.
PS - лот по ссылке все равно не открывается. Вы, наверно, ссылку лота из своей "Корзины" даете, а надо на сам лот. Хотя это уже не важно...
b707, у него в названии ссылки правильный адрес, а в содержание самой ссылки мусор. Этот глюк часто бывает, когда пытаешься вставить готовую ссылку. To: Densl надежнее будет написать слово ссылка, выделить его мышкой, и в меню редактирования нажать кнопку "вставить ссылку"
b707, у него в названии ссылки правильный адрес, а в содержание самой ссылки мусор.
проверил - с моего браузера название и содержание ссылки совпадают. Там есть еще реферер, указывающий на ардуино.ру - но это не влияет на саму ссылку
Добавка - а вот открывается и правда какая-то фигня. Скопировал ссылку из конфы как текст, перенес в адрессную строку - открылся лот. Чудеса...
Чем-то напоминает тот глюк, когда в википедии на любой запрос с сайта открывались разные обидные статьи :)
Кто использовал в Ардуино с адоном Роджера Кларка все 3 UART? Как стабильность? У меня похоже то тайминги сбиваются и из-за этого не прошивается, приходиться перезапускать IDE, то не все UART работают. Несколько раз думал что сжёг порт, все выпаивал, проверял отдельно и опять впаивал. У меня Arduino 1.8.5.
Всем привет. Изучаю STM32 с Arduino. Непонятно как работать с портами побитово.
К примеру вместо digitalWrite в ардуине пишем что-то типа: PORTB = B00010000 или PORTB != 1 << 5.
Пробовал на STM32 сделать разными способами, писал и GPIOB и PB и PORTB - никак не получается. Надо знать к чему присваивать, пытался найти в библиотеках - ничего не понял)
все три разом - не пользовал, а два в одном проекте запросто, никаких проблем
все три разом - не пользовал, а два в одном проекте запросто, никаких проблем
А какая версия arduino IDE, где работает? У меня на разных программах, с разными платами bluepill все одно и тоже.
1.6.12
1.8.3
Всем привет. Изучаю STM32 с Arduino. Непонятно как работать с портами побитово.
К примеру вместо digitalWrite в ардуине пишем что-то типа: PORTB = B00010000 или PORTB != 1 << 5.
Пробовал на STM32 сделать разными способами, писал и GPIOB и PB и PORTB - никак не получается. Надо знать к чему присваивать, пытался найти в библиотеках - ничего не понял)
GPIOB->ODR |= (1<<12);
GPIOB->ODR &= ~(1<<12);
Неа ....
Почему неа? ... или!
И к тому же можно ещё так.
Потому что не или.
Запись в ODR не атомарная, учиматчасть...
Как давно запись в ODR стала не атомарной? Цепочка прочитать регистр в переменную ‐ изменить переменную - записать обратно по определению не атомарна. А просто запись в регистр абсолютно эквивалентны. Если не считать, что когда пишешь в ODR то пишешь все разряды и нули и единицы, а когда в BSRR устанавливаются в единицы только те разряды где единицы. А вот установка нулей уже прикольнее. В нули устанавливаются те разряды , где единицы пишутся в BRR. Всё это к 103. В f4xx всё немного по-другому.
Все настолько плохо?
Тогда учимся читать, и если оригинал для вас недоступен - можно и напальцах...
https://catethysis.ru/stm32-gpio/
http://easyelectronics.ru/arm-uchebnyj-kurs-porty-gpio.html
Вот именно плохо. Где написано что ODR=GPIO_ODR_ODR_12; не атомарная операция? Я ж написал - GPIOB->ODR |= GPIO_ODR_ODR_12; неатомарная. У этих двух строк огромная разница. Первая за один такт устанавливает двенадцатый бит, остальные обнуляет. Вторая за 3 такта, между которыми может возникнуть прерывание, устанавливает двенадцатый бит, остальные сохраняет. Если я точно знаю какие биты должны быть в выходном регистре мне не обязательно его нужно читать, что бы модифицировать один бит. Почитайте мануал и осознайте, что BRR и BSRR называются регистрами data bitwise handling - побитовая обработка данных. Целый регистр ODR пишется так же атомарно. Но целый. Не отдельные биты.
Не надо ловить меня на фу фу и выкручиввться как глист и переобуваться в воздухе.
Писано для записи/сброса бита в ODR , что в посту 421 , и что никогда не было атомарной и есть RMW.
Если не осознаем разницу- марш учитьматчасть.
Скажите, где в #421 сказано что это действие атомарное? Может быть в #417 был вопрос про атомарную работу? Был вопрос как с портом работать побитово так же как в AVR. Мой ответ точно написал как работать через выходной регистр порта, точно также как и в AVR. Работа с портом в AVR не атомарна. Атомарная работа это плюшка STM, которая аналогов у наны уны не имеет.
Запись в ODR атомарна. Это написано во всех мануалах. Это Ваша ошибка и выкручиваться надо Вам. Вас ни кто за язык не тянул говорить:" Запись в ODR не атомарная...".
А теперь посмотри в ответ на что сие было писано.
Можно перефразировать для таких умников - твоя запись в ODR.
Про атомарность ты узнал только что, так что крутись не крутись , а врешь именно ты.
И еще, твоя писанина есть фуфло , пиздеж и выкручивания глиста, ибо прямая запись в ODR и BSRR не эквивалентные вещи и приводить их в сравнении может только д.
Обидно однако. У меня шести фазный регулятор, про который я уже писал на форуме, шестью тиристорами дергает через BSRR BRR. Сделан он был три года назад. Так что как минимум три года я знаю об этой возможности.
Ну померяемся, у меня анологичное делает дма через бурст , что более эффективно чем твое софтовое ногодрочерство и вот здесь именно атомарно.
И вообще ты советуешь нубу манипуляцию битами в ODR, и это когда давным -давно всем известно что это абсолютно не оптимально(насрать на авр ,здесь стм), и вот это ставит твой уровень абсолютно ниже плинтуса
Давай ты сначала посмотришь сколько раз и как я помог народу на форуме с stmками, а потом будешь оценивать мой уровень?
Помог, молодец.
Повышай свой уровень, ибо здесь у тебя пробелы.
Можешь не благодарить, ибо все у тебя впереди касательно стм...
Вы такие умные помощники тут собрались. Мне нужна помощь. Я на stm32 обмен налаживаю по рс 485 и нифига не работает. Моя тема тут на форуме только появилась.
А в чем проблемы? Пишем -что за камень, какой драйвер rs485, по какому протоколу работаем?
Запись в ODR атомарна. Это написано во всех мануалах.
Ссылку, пожалуйста... )))))))))))))
А ваще... включи мозги и подумай... почему СТМ ввёл допрегистры для управления портом...вот им нехрен было делать...
Я уже всё расписал #425 и #427 зачем допрегистры - что бы за одну команду записи можно было манипулировать отдельными битами, не затрагивая другие. Особенно если в порт пишут несколько параллельных процессов. Я наступал на эти грабли, когда на одном порту висел дисплей 1602 и управление тиристорами. Библиотека 1602 писала в ODR и срывала импульсы управления. Пришлось на BSRR переписывать. А ссылки - RM0008 мануал на 103. Fig 15. BSRR и ODR пишутся одной и той же командой. Из мануала ARM Assembly Language это str или ldr, что конкретно можно посмотреть в листинге.
Ну и где эта тема то?
Я уже всё расписал
Слов много... и все о своём и ни о чём...
Ссылка где... на атомарность ODR... ась ??? )))))))
Пришлось на BSRR переписывать.
Правильно... потому что нет у ODR никакой атомарности... отродясь... запомни это хорошо...
========
А... и да...
Особенно если в порт пишут несколько параллельных процессов. Я наступал на эти грабли, когда на одном порту висел дисплей 1602 и управление тиристорами. Библиотека 1602 писала в ODR и срывала импульсы управления.
Просто либа гавно... или не вникал в суть...
Если к ODR обращаться как к байту... то вторая половина порта не затрагивается... т.е. атомарность половины порта присутсвует...
Хотя... групповыми операциями с битами можно рулить и через BSRR... как не странно... Это к твоему...
что бы за одну команду записи можно было манипулировать отдельными битами, не затрагивая другие.
Разве только аппаратно, с DMA...
Наверно мы по разному понимаем атомарность. Мне мнилось что это не незатрагивание половины порта, а невозможность изменить конечный результат операции из за возникшего во время выполнения операции прерывания и изменения внутри прерывания каких то параметров исходной операции. В этом смысле запись данных в порт ODR не отличается от записи ODR.
Для подтверждения этого утверждения кусок листинга записи 8 16 и 32 разрядных данных в порты BSRR и ODR. Как говорится найдите разницу между атомарным BSRR и не атомарным ODR:
nik182, ничего что разговор был о манипуляции отдельными битами?????
И что? Используя ODR нельзя манипулировать отдельными битами? А как же ардуина? Там манипулируют. Перечитайте #417. Ещё раз спрошу. Где в #417 требование атомарности? Это ты потребовал и утверждал
и
Т.е. Манипулировать битами можно, но это неоптимально?
К тому же, если через BSRR нужно установить несколько разрядов то нужно провести кучу операций. Для единиц просто записать единицы в нижние 16 бит, а для нулей нужно инвертировать 0->1 и сдвинуть полученное в верхние 16 бит 32 разрядного регистра BRSS. Потом атомарно можно всё это записать через BSRR на выходные ноги процессора. Не проще на время GPIOB->ODR |= (1<<12); запретить прерывания? Что будет быстрее? В каждом случае можно выбрать оптимальный вариант.
Проще не городить чушь а признать тебе свои ошибки...
Наверно мы по разному понимаем атомарность. Мне мнилось что это не незатрагивание половины порта, а невозможность изменить конечный результат операции из за возникшего во время выполнения операции прерывания и изменения внутри прерывания каких то параметров исходной операции.
Твоё понимание (или непонимание) атомарности никого не интересует... есть стандартные определения на этот счёт...
А половиной порта я тебя явно удивил... Бывает !!! )))))))))
В этом смысле запись данных в порт ODR не отличается от записи ODR.
Это ваще перл... заслуживающий особого внимания... )))))))))))))))))))
Так держать !!!
Как говорится найдите разницу между атомарным BSRR и не атомарным ODR
В этом то и разница... что ты эту разницу не видишь... или не понимаешь...
Операции с BSRR и битбэндинг - атомарны... с ODR - нет... Фенит а ля комедия !!!
К тому же, если через BSRR нужно установить несколько разрядов то нужно провести кучу операций. Для единиц просто записать единицы в нижние 16 бит, а для нулей нужно инвертировать 0->1 и сдвинуть полученное в верхние 16 бит 32 разрядного регистра BRSS. Потом атомарно можно всё это записать через BSRR на выходные ноги процессора. Не проще на время GPIOB->ODR |= (1<<12); запретить прерывания? Что будет быстрее? В каждом случае можно выбрать оптимальный вариант.
Ты это серьёзно ??? Или пытаешься на костылях прыгать в высоту ??? )))))))))
Ты это серьёзно ??? Или пытаешься на костылях прыгать в высоту ??? )))))))))
Давай ты приведёшь пример как установить В1010 через переменную, а не константу в 4,5,6,7 разряды порта В с помощью BSRR? И тогда будем посмотреть кто на костылях, а кто нет. А то желающих трындеть много, а привести конкретный пример, опровергающий собеседника, знаний не хватает.
И тогда будем посмотреть кто на костылях, а кто нет.
Ну... пока это ты... не только на костылях... а даже лежачий... которого успешно и с удовольствием пинают... кому не лень... )))))))))
Где признание твоей неправоты ??? Где собственноручное художественное посыпание твоей головы пеплом??? Ась??? )))))))))))))
А то желающих трындеть много, а привести конкретный пример, опровергающий собеседника, знаний не хватает.
Да... ты уже привел пример... как делать не надо... и даже сам сказал... что пришлось переделывать... Что тебе ещё надо??? )))))))))))))
Либа под 1602 виновата??? Не смеши!!! На СТМ32 1602 легко вешается аппаратно!!! И забывается весь это кошмар и ужас с ногодрыгом, атомарностью, делаями, ОДР и прочими шнягами... )))))))))))))))))
Прерывания запрещать??? Да вы батенька в своём уме ли??? Что же это... в 1602 требует такой афигенной срочности??? )))))))))))
Там и так всё делаями усеяно... )))))))))))
Представил твой код... где каждый ногодрыг либы под 1602 обрамлён запретом-разрешением прерывания... Самому не смешно???
======
Перестань спорить... Учи матчасть!!!