Circuit-Digest / ESP32-Oscilloscope

Create your own affordable ESP32-based oscilloscope with 1Msps sampling rate using this DIY project. Features include a 1.69” TFT display, tactile switches, and essential components. Find the circuit diagram, PCB layout, and Arduino code on GitHub for an accessible and compact solution
https://circuitdigest.com/microcontroller-projects/diy-esp32-oscilloscope
46 stars 20 forks source link

'i2s_read_bytes' was not declared in this scope #3

Open Voha888 opened 1 year ago

Voha888 commented 1 year ago

If ESP32 version is 2.xx, the compiler print error: 'i2s_read_bytes' was not declared in this scope. I think, its need new function i2s_read , but simple changing function neme

i2s_read(I2S_NUM_0, (char*)&i2s_buff[i * NUM_SAMPLES], NUM_SAMPLES * sizeof(uint16_t), portMAX_DELAY);

not helped me, i have error:

Compilation error: narrowing conversion of 'rate' from 'int' to 'uint32_t' {aka 'unsigned int'} inside { } [-Werror=narrowing]

pauel3312 commented 1 month ago

That's because the new function doesnt have the same arguments. it needs an additional bytes_read value. I replaced the function ADC_Sampling in i2s.ino with this:

void ADC_Sampling(uint16_t *i2s_buff){
  size_t bytes_read = sizeof(uint16_t);
  for (int i = 0; i < B_MULT; i++) {
    i2s_read(I2S_NUM_0, (char*)&i2s_buff[i * NUM_SAMPLES],  NUM_SAMPLES * sizeof(uint16_t), &bytes_read, portMAX_DELAY);    
  }
}

and now it compiles can't be sure it works for now, I'm having other issues