Я пытаюсь придумать, как изменить определения активных слотов в ВОФК.
блок определения аудио, написанный на C.
#define ACTIVE_TDM_SLOTS 1|2|3|4|5|6|7|8
числа представляют собой значения uint32_t, используемые в этой структуре, которые при наличии активируют звуковые слоты TDM на микроустройстве.
typedef struct{
uint32_t FirstBitOffset;
uint32_t SlotSize;
uint32_t SlotNumber;
uint32_t SlotActive;
}SAI_SlotInitTypeDef;
Я пытаюсь придумать способ динамического изменения структуры ACTIVE_TDM_SLOTS в зависимости от того, какие каналы должны быть активными.
256 возможных комбинаций активных каналов.
Я могу инициировать и деинсталлировать аппаратные слоты, чтобы изменить конфигурацию активных слотов.
Я предполагаю, что #define #ifdef/#endef
все препроцессорные, поэтому мне нужно как-то использовать переменные?
Я мог бы создать строку из желаемых активных каналов для ACTIVE_TDM_SLOTS, но как загрузить это в переменную? можно использовать группу char * var и объединить их в переменную?
Я не совсем уверен, как работают трубы с определением на 1-м месте! возможно, просто невозможно загрузить это в переменную?
Мое другое решение будет фильтровать данные активного слота из прямого доступа к памяти по мере его поступления, но при этом будет более целесообразно активировать или деактивировать требуемые слоты?
Рад загрузить больше кода, если это полезно.