ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
17 июля
1308816 Топик полностью
Nikolay_Po (12.05.2023 00:46, просмотров: 105) ответил Zoro на не без этого. у 51 периферия регистры 8 бит, а по смыслу пару регистров образует "единый регистр " и тут (бывает) важен порядок чтения/записи. Но зачем искать приключения там где можно "тупо" считать целиком регистр модифицировать значение и записать обратно ? накой ляд приводить тип данных/регистра разной размерности?
Способ, порядок, момент записи могут иметь значение для модуля периферии. А приведение типа к другому размеру как раз меняет способ доступа. Был (volatile uint16_t) - доступ выполнялся ассемблерной командой доступа к слову, с выравниванием 16 бит. Переопределили тип в (volatile uint8_t) - компилятор, для того же адреса, использует другую команду ассемблера - для доступа к байту, с байтовым выравниванием.