ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
2 июня
1309117 Топик полностью
Eddy_Em (12.05.2023 16:56, просмотров: 164) ответил Nikolay_Po на А исключающее или для инверсии бита не подходит? Берёшь маску, все нули, кроме бита (или нескольких), который(е) инвертируется. И ксоришь с регистром. Вроде команда атомарная получается.
Не подходит, конечно. Нельзя инвертировать биты записью в ODR, т.к. это может повлиять на другие пины (которые, скажем, в это время менялись при помощи DMA или в прерываниях). 

И вообще, писать в ODR можно лишь в том случае, если, скажем, работаешь с параллельной шиной и используешь при этом все 16 ног порта. Или используешь лишь 8, а остальные 8 не инициализированы. В остальных случаях следует пользоваться исключительно BSRR.

eddy-em.livejournal.com github.com/eddyem