@@ -124,6 +124,10 @@ static rmt_obj_t g_rmt_objects[MAX_CHANNELS] = {
124
124
/**
125
125
* Internal variables for driver data
126
126
*/
127
+ static intr_handle_t intr_handle ;
128
+
129
+ static bool periph_enabled = false;
130
+
127
131
static xSemaphoreHandle g_rmt_block_lock = NULL ;
128
132
129
133
/**
@@ -184,21 +188,21 @@ static void _rmtRxTask(void *args) {
184
188
rmt_item32_t * data = NULL ;
185
189
186
190
if (!rmt ) {
187
- log_e (" -- Inavalid Argument" );
191
+ log_e (" -- Inavalid Argument \n " );
188
192
goto err ;
189
193
}
190
194
191
195
int channel = rmt -> channel ;
192
196
rmt_get_ringbuf_handle (channel , & rb );
193
197
if (!rb ) {
194
- log_e (" -- Failed to get RMT ringbuffer handle" );
198
+ log_e (" -- Failed to get RMT ringbuffer handle\n " );
195
199
goto err ;
196
200
}
197
201
198
202
for (;;) {
199
203
data = (rmt_item32_t * ) xRingbufferReceive (rb , & rmt_len , portMAX_DELAY );
200
204
if (data ) {
201
- log_d (" -- Got %d bytes on RX Ringbuffer - CH %d" , rmt_len , rmt -> channel );
205
+ log_d (" -- Got %d bytes on RX Ringbuffer - CH %d\n " , rmt_len , rmt -> channel );
202
206
rmt -> rx_completed = true; // used in rmtReceiveCompleted()
203
207
// callback
204
208
if (rmt -> cb ) {
@@ -386,6 +390,7 @@ bool rmtReadData(rmt_obj_t* rmt, uint32_t* data, size_t size)
386
390
if (!rmt ) {
387
391
return false;
388
392
}
393
+ int channel = rmt -> channel ;
389
394
390
395
rmtReadAsync (rmt , (rmt_data_t * ) data , size , NULL , false, 0 );
391
396
return true;
@@ -487,7 +492,7 @@ bool rmtReadAsync(rmt_obj_t* rmt, rmt_data_t* data, size_t size, void* eventFlag
487
492
488
493
// wait for data if requested so
489
494
if (waitForData && eventFlag ) {
490
- xEventGroupWaitBits (eventFlag , RMT_FLAGS_ALL ,
495
+ uint32_t flags = xEventGroupWaitBits (eventFlag , RMT_FLAGS_ALL ,
491
496
pdTRUE /* clear on exit */ , pdFALSE /* wait for all bits */ , timeout );
492
497
}
493
498
return true;
@@ -536,7 +541,6 @@ rmt_obj_t* rmtInit(int pin, bool tx_not_rx, rmt_reserve_memsize_t memsize)
536
541
ch_end = RMT_RX_CH_END ;
537
542
}
538
543
for (i = ch_start ; i <=ch_end ; i ++ ) {
539
- j = 0 ; // fixes compiling option -Werror=maybe-uninitialized
540
544
for (j = 0 ; j < buffers && i + j <= ch_end ; j ++ ) {
541
545
// if the space is ocupied break and continue on other channel
542
546
if (g_rmt_objects [i + j ].allocated ) {
@@ -551,7 +555,7 @@ rmt_obj_t* rmtInit(int pin, bool tx_not_rx, rmt_reserve_memsize_t memsize)
551
555
}
552
556
if (i == MAX_CHANNELS || i + j > MAX_CHANNELS || j != buffers ) {
553
557
xSemaphoreGive (g_rmt_block_lock );
554
- log_e ("rmInit Failed - not enough channels" );
558
+ log_e ("rmInit Failed - not enough channels\n " );
555
559
return NULL ;
556
560
}
557
561
@@ -587,15 +591,15 @@ rmt_obj_t* rmtInit(int pin, bool tx_not_rx, rmt_reserve_memsize_t memsize)
587
591
esp_err_code = rmt_config (& config );
588
592
if (esp_err_code == ESP_OK )
589
593
esp_err_code = rmt_driver_install (channel , 0 , 0 );
590
- log_d (" -- %s RMT - CH %d - %d RAM Blocks - pin %d" , tx_not_rx ?"TX" :"RX" , channel , buffers , pin );
594
+ log_d (" -- %s RMT - CH %d - %d RAM Blocks - pin %d\n " , tx_not_rx ?"TX" :"RX" , channel , buffers , pin );
591
595
} else {
592
596
rmt_config_t config = RMT_DEFAULT_ARD_CONFIG_RX (pin , channel , buffers );
593
597
esp_err_code = rmt_config (& config );
594
598
if (esp_err_code == ESP_OK )
595
599
esp_err_code = rmt_driver_install (channel , 1024 , 0 );
596
600
if (esp_err_code == ESP_OK )
597
601
esp_err_code = rmt_set_memory_owner (channel , RMT_MEM_OWNER_RX );
598
- log_d (" -- %s RMT - CH %d - %d RAM Blocks - pin %d" , tx_not_rx ?"TX" :"RX" , channel , buffers , pin );
602
+ log_d (" -- %s RMT - CH %d - %d RAM Blocks - pin %d\n " , tx_not_rx ?"TX" :"RX" , channel , buffers , pin );
599
603
}
600
604
601
605
RMT_MUTEX_UNLOCK (channel );
0 commit comments