#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "hardware/adc.h"
#define buffer_max 1000
#define buffer_min 0
int buffer_tap = 0;
int buffer_delay = 100;
int buffer[buffer_max];
int main() {
stdio_init_all();
printf("Starting...");
printf("Running...");
adc_init();
adc_gpio_init(26);
adc_select_input(0);
uint16_t adc_raw;
// 12-bit conversion, assume max value == ADC_VREF == 3.3 V
const float conversion_factor = 3.3f / (1 << 12);
uint16_t result; // = adc_read();
//printf("Raw value: 0x%03x, voltage: %f V\n", result, result * conversion_factor);
while (true) {
printf("Recording...\n");
buffer_tap = 0;
while (buffer_tap <= buffer_max)
{
buffer_tap++;
//if (buffer_tap > buffer_max)
//{
// buffer_tap = buffer_min;
//}
result = adc_read();
buffer[buffer_tap] = result;
sleep_ms(10);
}
buffer_tap = 0;
printf("Playback...\n");
while (buffer_tap <= buffer_max)
{
buffer_tap++;
printf("[%i] Raw value: %i, voltage: %f V\n", buffer_tap, buffer[buffer_tap], buffer[buffer_tap] * conversion_factor);
sleep_ms(10);
}
}
}