From 875a368c60e9ea0a79dc4a119dbc42c8694609eb Mon Sep 17 00:00:00 2001 From: Akira <akirajlane@googlemail.com> Date: Sat, 30 Apr 2022 20:31:43 +0100 Subject: [PATCH] removed unnecessary callback --- oscilloscope.c | 24 +++++------------------- oscilloscope.h | 3 --- oscilloscope_incomplete.c | 20 +++++--------------- 3 files changed, 10 insertions(+), 37 deletions(-) diff --git a/oscilloscope.c b/oscilloscope.c index 4f54617..78c2378 100644 --- a/oscilloscope.c +++ b/oscilloscope.c @@ -13,7 +13,6 @@ int16_t *raw_buffer_b; bool active_buffer; // 0 for a, 1 for b unsigned int dma_channel; -samples_ready_handler_t samples_ready_handler; volatile int samples_read; int16_t sample_buffer[SAMPLE_BUFFER_SIZE]; @@ -37,7 +36,6 @@ int main() // microphone setup setup_adc(); setup_dma(); - set_samples_ready_handler(on_samples_ready); start_listening(); unsigned int num_samples = 0; @@ -58,7 +56,6 @@ int main() sleep_ms(50); ST7735_FillScreen(ST7735_BLACK); // clean - } } @@ -136,31 +133,20 @@ void dma_handler() // swap buffers active_buffer = !active_buffer; - samples_ready_handler(); - -} - -void set_samples_ready_handler(samples_ready_handler_t handler) -{ - samples_ready_handler = handler; + on_samples_ready(); } -int read_samples(int16_t* buffer, size_t samples) +void on_samples_ready() { uint16_t* in = active_buffer ? raw_buffer_a : raw_buffer_b; - int16_t* out = buffer; + int16_t* out = sample_buffer; - for (size_t i = 0; i < samples; i++) + for (size_t i = 0; i < SAMPLE_BUFFER_SIZE; i++) { *out++ = *in++ - bias; } - return samples; -} - -void on_samples_ready() -{ - samples_read = read_samples(sample_buffer, SAMPLE_BUFFER_SIZE); + samples_read = SAMPLE_BUFFER_SIZE; } void debug_write_to_screen(char debug_string[]) { diff --git a/oscilloscope.h b/oscilloscope.h index c946184..2f81663 100644 --- a/oscilloscope.h +++ b/oscilloscope.h @@ -14,15 +14,12 @@ #include "lib/st7735.h" #include "lib/ICM20948.h" -typedef void (*samples_ready_handler_t)(void); - void setup_adc(); void setup_dma(); void start_listening(); void dma_handler(); -void set_samples_ready_handler(samples_ready_handler_t handler); int read_samples(int16_t* buffer, size_t samples); void on_samples_ready(); diff --git a/oscilloscope_incomplete.c b/oscilloscope_incomplete.c index ab14e4a..e6c5ae5 100644 --- a/oscilloscope_incomplete.c +++ b/oscilloscope_incomplete.c @@ -62,7 +62,7 @@ void start_listening() void dma_handler() { // TODO: get the samples from DMA into main() - // hint: call samples_ready_handler at the end + // hint: call on_samples_ready at the end } void setup_adc() @@ -112,27 +112,17 @@ void setup_dma() } -void set_samples_ready_handler(samples_ready_handler_t handler) -{ - samples_ready_handler = handler; -} - -int read_samples(int16_t* buffer, size_t samples) +void on_samples_ready() { uint16_t* in = active_buffer ? raw_buffer_a : raw_buffer_b; - int16_t* out = buffer; + int16_t* out = sample_buffer; - for (size_t i = 0; i < samples; i++) + for (size_t i = 0; i < SAMPLE_BUFFER_SIZE; i++) { *out++ = *in++ - bias; } - return samples; -} - -void on_samples_ready() -{ - samples_read = read_samples(sample_buffer, SAMPLE_BUFFER_SIZE); + samples_read = SAMPLE_BUFFER_SIZE; } void debug_write_to_screen(char debug_string[]) { -- GitLab