Skip to content
Snippets Groups Projects
Commit 875a368c authored by Akira's avatar Akira
Browse files

removed unnecessary callback

parent becb19d4
No related branches found
No related tags found
No related merge requests found
...@@ -13,7 +13,6 @@ int16_t *raw_buffer_b; ...@@ -13,7 +13,6 @@ int16_t *raw_buffer_b;
bool active_buffer; // 0 for a, 1 for b bool active_buffer; // 0 for a, 1 for b
unsigned int dma_channel; unsigned int dma_channel;
samples_ready_handler_t samples_ready_handler;
volatile int samples_read; volatile int samples_read;
int16_t sample_buffer[SAMPLE_BUFFER_SIZE]; int16_t sample_buffer[SAMPLE_BUFFER_SIZE];
...@@ -37,7 +36,6 @@ int main() ...@@ -37,7 +36,6 @@ int main()
// microphone setup // microphone setup
setup_adc(); setup_adc();
setup_dma(); setup_dma();
set_samples_ready_handler(on_samples_ready);
start_listening(); start_listening();
unsigned int num_samples = 0; unsigned int num_samples = 0;
...@@ -58,7 +56,6 @@ int main() ...@@ -58,7 +56,6 @@ int main()
sleep_ms(50); sleep_ms(50);
ST7735_FillScreen(ST7735_BLACK); // clean ST7735_FillScreen(ST7735_BLACK); // clean
} }
} }
...@@ -136,31 +133,20 @@ void dma_handler() ...@@ -136,31 +133,20 @@ void dma_handler()
// swap buffers // swap buffers
active_buffer = !active_buffer; active_buffer = !active_buffer;
samples_ready_handler(); on_samples_ready();
}
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; 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; *out++ = *in++ - bias;
} }
return samples; samples_read = SAMPLE_BUFFER_SIZE;
}
void on_samples_ready()
{
samples_read = read_samples(sample_buffer, SAMPLE_BUFFER_SIZE);
} }
void debug_write_to_screen(char debug_string[]) { void debug_write_to_screen(char debug_string[]) {
......
...@@ -14,15 +14,12 @@ ...@@ -14,15 +14,12 @@
#include "lib/st7735.h" #include "lib/st7735.h"
#include "lib/ICM20948.h" #include "lib/ICM20948.h"
typedef void (*samples_ready_handler_t)(void);
void setup_adc(); void setup_adc();
void setup_dma(); void setup_dma();
void start_listening(); void start_listening();
void dma_handler(); void dma_handler();
void set_samples_ready_handler(samples_ready_handler_t handler);
int read_samples(int16_t* buffer, size_t samples); int read_samples(int16_t* buffer, size_t samples);
void on_samples_ready(); void on_samples_ready();
......
...@@ -62,7 +62,7 @@ void start_listening() ...@@ -62,7 +62,7 @@ void start_listening()
void dma_handler() void dma_handler()
{ {
// TODO: get the samples from DMA into main() // 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() void setup_adc()
...@@ -112,27 +112,17 @@ void setup_dma() ...@@ -112,27 +112,17 @@ void setup_dma()
} }
void set_samples_ready_handler(samples_ready_handler_t handler) void on_samples_ready()
{
samples_ready_handler = handler;
}
int read_samples(int16_t* buffer, size_t samples)
{ {
uint16_t* in = active_buffer ? raw_buffer_a : raw_buffer_b; 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; *out++ = *in++ - bias;
} }
return samples; samples_read = SAMPLE_BUFFER_SIZE;
}
void on_samples_ready()
{
samples_read = read_samples(sample_buffer, SAMPLE_BUFFER_SIZE);
} }
void debug_write_to_screen(char debug_string[]) { void debug_write_to_screen(char debug_string[]) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment