Wow, actually it succeeded as follow..With the following interrupt routine I was able to get data for channel 0:
void IRAM_ATTR rmt_isr_handler(void* arg){
//read RMT interrupt status.
uint32_t intr_st = RMT.int_st.val;
RMT.conf_ch[0].conf1.rx_en = 0;
RMT.conf_ch[0].conf1.mem_owner = RMT_MEM ...
Search found 6 matches
- Wed Oct 17, 2018 6:13 pm
- Forum: ESP-IDF
- Topic: RMT interrupts
- Replies: 6
- Views: 11772
- Wed Oct 17, 2018 10:19 am
- Forum: ESP-IDF
- Topic: RMT interrupts
- Replies: 6
- Views: 11772
Re: RMT interrupts
Thanks for letting me know....Seems like I'm on the correct way. But why no data? I will next try to unset the enable bit and ownership. Looking forward what happens.....Thx again
- Wed Oct 17, 2018 9:08 am
- Forum: ESP-IDF
- Topic: RMT interrupts
- Replies: 6
- Views: 11772
Re: RMT interrupts
I'm still investigating to get my own RMT interrupt running. At the moment I'm worrying, if rx_en is really enabled with my code above and if I'm really accessing to the correct memory address (RMT_MEM_PD)?? Would be happy to find someone who has some experience with it... Thx
- Sun Oct 14, 2018 8:25 am
- Forum: ESP-IDF
- Topic: RMT interrupts
- Replies: 6
- Views: 11772
Re: RMT interrupts
Hmm, yes, that makes sense. I assume that in this case you will use
rmt_set_rx_intr_en( config.channel,true);
rmt_isr_register(rmt_isr_handler, NULL, ESP_INTR_FLAG_LEVEL1, &xHandler);
Instead of:
rmt_driver_install(config.channel, 100, 0)):
By this I managed to hook the interrupt and disable ...
rmt_set_rx_intr_en( config.channel,true);
rmt_isr_register(rmt_isr_handler, NULL, ESP_INTR_FLAG_LEVEL1, &xHandler);
Instead of:
rmt_driver_install(config.channel, 100, 0)):
By this I managed to hook the interrupt and disable ...
- Sat Oct 13, 2018 12:16 pm
- Forum: General Discussion
- Topic: RMT Receive ISR handler
- Replies: 2
- Views: 4939
Re: RMT Receive ISR handler
Whats about calling it like this?
rmt_isr_handle_t xHandler = NULL;
void IRAM_ATTR rmt_isr_handler(void* arg){
...
}
rmt_config_t config;
config.rmt_mode = RMT_MODE_RX;
config.channel = (rmt_channel_t) _channel;
config.gpio_num = (gpio_num_t)pin;
config.mem_block_num = 1; //how many ...
rmt_isr_handle_t xHandler = NULL;
void IRAM_ATTR rmt_isr_handler(void* arg){
...
}
rmt_config_t config;
config.rmt_mode = RMT_MODE_RX;
config.channel = (rmt_channel_t) _channel;
config.gpio_num = (gpio_num_t)pin;
config.mem_block_num = 1; //how many ...
- Sat Oct 13, 2018 12:07 pm
- Forum: ESP-IDF
- Topic: RMT - simplest receive example with Custom Interrupt
- Replies: 0
- Views: 3555
RMT - simplest receive example with Custom Interrupt
Im trying to implement an RMT Receiver at RMT channel 0 with my own interrupt. The interrupt is already fired successfully, but inside the interrupt, I can not get the correct data. This is how my interrupt is coded:
rmt_isr_handle_t xHandler = NULL;
void IRAM_ATTR rmt_isr_handler(void* arg ...
rmt_isr_handle_t xHandler = NULL;
void IRAM_ATTR rmt_isr_handler(void* arg ...