1919use embassy_executor:: Spawner ;
2020use esp_backtrace as _;
2121use esp_hal:: {
22+ dma:: DmaRxStreamBuf ,
2223 dma_buffers,
24+ dma_buffers_chunk_size,
2325 i2s:: master:: { DataFormat , I2s , Standard } ,
2426 time:: Rate ,
2527 timer:: timg:: TimerGroup ,
@@ -44,7 +46,7 @@ async fn main(_spawner: Spawner) {
4446 }
4547 }
4648
47- let ( rx_buffer, rx_descriptors, _, _) = dma_buffers ! ( 4092 * 4 , 0 ) ;
49+ let ( rx_buffer, rx_descriptors, _, _) = dma_buffers_chunk_size ! ( 4092 * 4 , 0 , 4092 ) ;
4850
4951 let i2s = I2s :: new (
5052 peripherals. I2S0 ,
@@ -63,18 +65,21 @@ async fn main(_spawner: Spawner) {
6365 . with_bclk ( peripherals. GPIO2 )
6466 . with_ws ( peripherals. GPIO4 )
6567 . with_din ( peripherals. GPIO5 )
66- . build ( rx_descriptors ) ;
68+ . build ( ) ;
6769
6870 let buffer = rx_buffer;
6971 println ! ( "Start" ) ;
7072
7173 let mut data = [ 0u8 ; 5000 ] ;
72- let mut transaction = i2s_rx. read_dma_circular_async ( buffer) . unwrap ( ) ;
74+ let mut transaction = i2s_rx
75+ . read ( DmaRxStreamBuf :: new ( rx_descriptors, buffer) . unwrap ( ) , 4092 )
76+ . unwrap ( ) ;
7377 loop {
74- let avail = transaction. available ( ) . await . unwrap ( ) ;
78+ transaction. wait_for_available ( ) . await . unwrap ( ) ;
79+ let avail = transaction. available_bytes ( ) ;
7580 println ! ( "available {}" , avail) ;
7681
77- let count = transaction. pop ( & mut data) . await . unwrap ( ) ;
82+ let count = transaction. pop ( & mut data) ;
7883
7984 #[ cfg( not( feature = "esp32s2" ) ) ]
8085 println ! (
0 commit comments