@@ -53,10 +53,10 @@ bufring2=bufring1;
53
53
cpu_freq = freq ;
54
54
}
55
55
56
- uint32_t buflends [8192 ];
57
56
void audioi2sconstuff2 () {
58
57
uint32_t divider = (cpu_freq * 2 / 48000 ) - ((bufring2 -> len - 16 )/2 );
59
58
buflends [bufring2 -> index1 ] = divider ;
59
+ // buflends[bufring2->index1] = divider;
60
60
pio_sm_set_clkdiv_int_frac (audio_pio , shared_state .pio_sm , divider >> 8u , divider & 0xffu );
61
61
}
62
62
@@ -149,7 +149,10 @@ static void update_pio_frequency(uint32_t sample_freq) {
149
149
}
150
150
151
151
static inline void audio_start_dma_transfer () {
152
- while (bufring2 -> corelock == 1 ) {tight_loop_contents ();}
152
+ dma_channel_config c = dma_get_channel_config (shared_state .dma_channel );
153
+ channel_config_set_read_increment (& c , true);
154
+ dma_channel_set_config (shared_state .dma_channel , & c , false);
155
+ //while (bufring2->corelock == 1) {tight_loop_contents();}
153
156
mutex_enter_blocking (& bufring2 -> corelock2 );
154
157
//bufring2->corelock = 2;
155
158
if (bufring2 -> len < 2 ) {
@@ -164,17 +167,13 @@ irq_set_enabled(DMA_IRQ_0 + PICO_AUDIO_I2S_DMA_IRQ, true);
164
167
pio_sm_set_enabled(audio_pio, shared_state.pio_sm, true);
165
168
*/
166
169
static uint32_t zero ;
167
- dma_channel_config c = dma_get_channel_config (shared_state .dma_channel );
168
170
channel_config_set_read_increment (& c , false);
169
171
dma_channel_set_config (shared_state .dma_channel , & c , false);
170
172
dma_channel_transfer_from_buffer_now (shared_state .dma_channel , & zero , 2 );
171
173
return ;
172
174
}
173
- dma_channel_config c = dma_get_channel_config (shared_state .dma_channel );
174
- channel_config_set_read_increment (& c , true);
175
- dma_channel_set_config (shared_state .dma_channel , & c , false);
176
175
dma_channel_transfer_from_buffer_now (shared_state .dma_channel , bufring2 -> buf + bufring2 -> index1 , 2 );
177
- buflends [bufring2 -> index1 + 1 ] = bufring2 -> len ;
176
+ // buflends[bufring2->index1+1] = bufring2->len;
178
177
bufring2 -> len = bufring2 -> len - 2 ;
179
178
bufring2 -> index1 = (bufring2 -> index1 + 2 ) % (1024 - 32 );
180
179
//bufring2->corelock = 0;
@@ -191,7 +190,7 @@ mutex_enter_blocking(&bufring4->corelock2);
191
190
channel_config_set_write_increment (& c , true);
192
191
dma_channel_set_config (shared_state2 .dma_channel , & c , false);
193
192
dma_channel_transfer_to_buffer_now (shared_state2 .dma_channel , bufring4 -> buf + bufring4 -> index1 , 2 );
194
- buflends [bufring4 -> index1 + 1 ] = bufring4 -> len ;
193
+ // buflends[bufring4->index1+1] = bufring4->len;
195
194
bufring4 -> len = bufring4 -> len + 2 ;
196
195
bufring4 -> index = (bufring4 -> index + 2 ) % (1024 - 32 );
197
196
//bufring4->corelock = 0;
0 commit comments