Hallo
In RTOS ESP32 I2S habe ich folgenden Ausdruck
typedef enum {
I2S_MODE_MASTER = 1,
I2S_MODE_SLAVE = 2,
I2S_MODE_TX = 4,
I2S_MODE_RX = 8,
I2S_MODE_DAC_BUILT_IN = 16, /*!< Output I2S data to built-in
DAC, no matter the data format is 16bit or 32 bit, the DAC module will
only take the 8bits from MSB*/
I2S_MODE_ADC_BUILT_IN = 32, /*!< Input I2S data from built-in
ADC, each data can be 12-bit width at most*/
I2S_MODE_PDM = 64,
} i2s_mode_t;
i2s_mode_t I2SMode;
I2SMode = I2S_MODE_MASTER | I2S_MODE_TX; // Das geht nicht !!!!!!!
die Orginal Syntax sieht folgendermassen aus
I2S_Mode = {
.mode = I2S_Mode, // I2S_MODE_MASTER | I2S_MODE_TX,
// Only TX
.sample_rate = SAMPLE_RATE,
.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
//16-bit per channel
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
//2-channels
.communication_format = I2S_COMM_FORMAT_I2S |
I2S_COMM_FORMAT_I2S_MSB,
.dma_buf_count = 6,
.dma_buf_len = 60,
//
.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1
//Interrupt level 1
};
Nur dummerweise geht das mit der Arduino IDE nicht der Compiler meckert mit
ESP32_I2S.ino: 56:10: error: invalid conversion from 'int' to 'i2s_mode_t' [-fpermissive]
Habe dazu schon ein Case aufgemacht
https://www.mikrocontroller.net/topic/453989#5465398