ADC
Смещение SAH_TIME
Описание
В регистре ADC_CONFIG поле SAH_TIME имеет разные разряды для записи и для чтения.
Для записи разряды [13:8], для чтения [14:9].
Обход
Используйте для чтения и записи поля SAH_TIME разные разряды.
Используйте библиотечные макросы смещения ADC_CONFIG_SAH_TIME_WRITE_S для записи и ADC_CONFIG_SAH_TIME_READ_S для чтения.
При записи других полей регистра ADC_CONFIG следует учитывать смещение значения
SAH_TIME. Например, для записи номера канала в поле:
uint32_t channel_selection = 1; // Номер канала.
ANALOG_REG->ADC_CONFIG =
((ANALOG_REG->ADC_CONFIG & (~ADC_CONFIG_SAH_TIME_READ_M)) & (~ADC_CONFIG_SEL_M)) |
((ANALOG_REG->ADC_CONFIG >> 1) & ADC_CONFIG_SAH_TIME_WRITE_M) |
((channel_selection) << ADC_CONFIG_SEL_S);