ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
17 июля
1308672 Топик полностью
Andreas (11.05.2023 19:19, просмотров: 91) ответил Nikolay_Po на Насчёт траты лишних тактов: а как ты сделаешь модификацию избранных бит регистра, не меняя неизвестные остальные биты? Такое часто встречается. Я оптимизирую так там, где можно записать регистр целиком за раз, когда нет неизвестных бит, которые надо сохранить - пишу сразу. Но в универсальном коде, каким является сабж, ты не имеешь права менять других бит, так как не ты их устанавливал и предысторией не владеешь. Поэтому и сброс/установка через маскирование.
В большинстве случаев инициализации периферии вполне можно и даже желательно писать весь регистр, чтобы получить гарантированное состояние. Но в примерах и библиотеках очень часто по одной функции ставят и вместо одной прямой записи несколько модификаций. А предысторией не владеешь обычно во всяких регистрах включения тактирования, питания...., их не так много.