1
0
Fork 0

move rendering to core1

sd2
radex 2024-05-17 23:03:24 +02:00
parent f46da1e22c
commit 4e877d784a
Signed by: radex
SSH Key Fingerprint: SHA256:hvqRXAGG1h89yqnS+cyFTLKQbzjWD4uXIqw7Y+0ws30
5 changed files with 23 additions and 27 deletions

View File

@ -6,7 +6,7 @@
#define AUDIO_PIN 2
#define AUDIO_RATE 44000.0f
#define BUFFER_LEN 16384
#define BUFFER_LEN 512*32
#define BUFFER_LEN_MS (BUFFER_LEN / AUDIO_RATE) * 1000.0f
extern uint8_t wav_buffer_0[BUFFER_LEN];

View File

@ -56,34 +56,26 @@ void leds_init() {
// clear output - rows
clearShiftReg(ROW_SRCLK, ROW_SRCLR);
pulsePin(ROW_RCLK);
/*
// launch core1
// NOTE: For some reason, without delay, core1 doesn't start?
delay(500);
multicore_reset_core1();
multicore_launch_core1(main2);
*/
}
void leds_disable() {
outputEnable(ROW_OE, false);
}
void leds_loop() {
// game of life step
// auto now = millis();
// if (now - frameLastChangedAt > 100) {
// frameLastChangedAt = now;
// life_step();
// for (int y = 0; y < ROW_COUNT; y++) {
// for (int x = 0; x < COL_COUNT; x++) {
// framebuffer[y * ROW_COUNT + x] = cells[y * ROW_COUNT + x] ? 255 : 0;
// }
// }
// }
void main2() {
// where we're going, we don't need no interrupts
noInterrupts();
while (true) {
leds_render();
}
}
leds_render();
void leds_initRenderer() {
// launch core1
// NOTE: For some reason, without delay, core1 doesn't start?
// delay(500);
multicore_reset_core1();
multicore_launch_core1(main2);
}
void leds_render() {
@ -153,7 +145,7 @@ void leds_render() {
// show for a certain period
outputEnable(ROW_OE, true);
delayMicroseconds(brightnessPhaseDelays[brightnessPhase]);
busy_wait_us_32(brightnessPhaseDelays[brightnessPhase]);
outputEnable(ROW_OE, false);
}

View File

@ -23,6 +23,7 @@
#define MS_PER_FRAME 1000 / FPS
void leds_init();
void leds_initRenderer();
void leds_disable();
void leds_loop();
void leds_render();

View File

@ -34,10 +34,12 @@ void setup() {
Serial.println("Failed to load gfx blob");
while (true) {}
}
leds_initRenderer();
}
void loop() {
sd_loadNextAudio();
// sd_loadNextAudio();
// if (Serial.available() > 0) {
// char c = Serial.read();
@ -55,6 +57,4 @@ void loop() {
if (!gfx_decoder_handleLoop()) {
Serial.println("Failed to load frame...");
}
leds_render();
}

View File

@ -193,6 +193,7 @@ void sd_loadNextAudio() {
}
next_buffer_requested = false;
auto b4 = millis();
auto next_buffer = wav_buffer1_active ? &wav_buffer_0 : &wav_buffer_1;
auto bytesRead = audioFile.read(next_buffer, BUFFER_LEN);
@ -202,7 +203,9 @@ void sd_loadNextAudio() {
} else {
Serial.print("Read ");
Serial.print(bytesRead);
Serial.println(" bytes from audio file");
Serial.print(" bytes from audio file in ");
Serial.print(millis() - b4);
Serial.println("ms");
}
}