Search found 305 matches
- Wed Mar 28, 2018 8:56 am
- Forum: Hardware
- Topic: Is there a way to reset an RMT channel if the buffer has been filled?
- Replies: 10
- Views: 11537
Re: Is there a way to reset an RMT channel if the buffer has been filled?
Filter threshold is max 255 ticks of 80MHz already. "RMT_RX_FILTER_THRES_CHn In receive mode, channel n ignores input pulse when the pulse width is smaller than this value in APB clock periods." Error codes are undocumented in the status register but the high byte is 03 and the low byte is the count...
- Tue Mar 27, 2018 8:11 pm
- Forum: Hardware
- Topic: Is there a way to reset an RMT channel if the buffer has been filled?
- Replies: 10
- Views: 11537
Re: Is there a way to reset an RMT channel if the buffer has been filled?
periph_module_reset(PERIPH_RMT_MODULE);
rmt_config(&rmt_rx);
rmt_rx_start(rmt_rx.channel, 1);
Finally! This allows recovery from buffer full.
Somewhat brutal to restart the whole RMT module though as would affect other channels.
rmt_config(&rmt_rx);
rmt_rx_start(rmt_rx.channel, 1);
Finally! This allows recovery from buffer full.
Somewhat brutal to restart the whole RMT module though as would affect other channels.
- Tue Mar 27, 2018 7:12 pm
- Forum: Hardware
- Topic: Is there a way to reset an RMT channel if the buffer has been filled?
- Replies: 10
- Views: 11537
Re: Is there a way to reset an RMT channel if the buffer has been filled?
esp_restart() doesn't even recover it. Only a reset by button.
rmt_memory_rw_rst either alone or inside rmt_rx_start(rmt_rx.channel, 1); changes the error code.
rmt_memory_rw_rst either alone or inside rmt_rx_start(rmt_rx.channel, 1); changes the error code.
- Tue Mar 27, 2018 5:39 pm
- Forum: Hardware
- Topic: Is there a way to reset an RMT channel if the buffer has been filled?
- Replies: 10
- Views: 11537
Re: Is there a way to reset an RMT channel if the buffer has been filled?
Unable to transmit on channel 0 after receive has filled the buffer.
- Tue Mar 27, 2018 5:18 pm
- Forum: Hardware
- Topic: Is there a way to reset an RMT channel if the buffer has been filled?
- Replies: 10
- Views: 11537
Re: Is there a way to reset an RMT channel if the buffer has been filled?
rmt_rx_stop(rmt_rx.channel);
rmt_config(&rmt_rx);
rmt_driver_install(rmt_rx.channel, 1000, 0);
rmt_driver_uninstall(rmt_rx.channel);
rmt_rx_start(rmt_rx.channel, 1);
This or variations of it do not work.
rmt_config(&rmt_rx);
rmt_driver_install(rmt_rx.channel, 1000, 0);
rmt_driver_uninstall(rmt_rx.channel);
rmt_rx_start(rmt_rx.channel, 1);
This or variations of it do not work.
- Tue Mar 27, 2018 4:05 pm
- Forum: Hardware
- Topic: Is there a way to reset an RMT channel if the buffer has been filled?
- Replies: 10
- Views: 11537
Re: Is there a way to reset an RMT channel if the buffer has been filled?
rmt_config(&rmt_rx);
rmt_rx_start(rmt_rx.channel, 1);
Also does not restart it. I might have to try silly things like configuring it as a transmitter, or stopping and starting the driver, then trying again.
rmt_rx_start(rmt_rx.channel, 1);
Also does not restart it. I might have to try silly things like configuring it as a transmitter, or stopping and starting the driver, then trying again.
- Tue Mar 27, 2018 2:39 pm
- Forum: Hardware
- Topic: Is there a way to reset an RMT channel if the buffer has been filled?
- Replies: 10
- Views: 11537
Is there a way to reset an RMT channel if the buffer has been filled?
rmt_rx_start(rmt_rx.channel, 1); to restart if receiving ended because there was a timeout. In my case with a continuous pulse train this is an error. rmt_memory_rw_rst(rmt_rx.channel); to reset the buffer position after reading items. In my case I do this in a FreeRTOS task after reading the buffer...
- Mon Mar 26, 2018 3:33 pm
- Forum: Hardware
- Topic: Making a pair of "super" analog pins - combining DAC and ADC pins
- Replies: 0
- Views: 2468
Making a pair of "super" analog pins - combining DAC and ADC pins
Where I have limited connections to the outside world and want maximum software configuration/flexibility whilst being able to use WiFi (so no ADC2) and not have the hall sensor interfere (ADC1_0 and ADC1_3): Connect DAC_1 with ADC1_CH1 and DAC_2 with ADC1_CH2. This would give me ADC, DAC, GPIO in t...
- Fri Mar 23, 2018 7:57 pm
- Forum: ESP-IDF
- Topic: RMT - simplest receive example working, but idle_threshold problem
- Replies: 18
- Views: 18778
Re: RMT - simplest receive example working, but idle_threshold problem
This really quick and dirty example works to read periods and allows expected setting of idle_threshold. It does not use the ring buffer, but simply reads the first entry in the receive buffer and resets, so the task delay and frequency are entangled. #include "freertos/FreeRTOS.h" #include "freerto...
- Fri Mar 23, 2018 6:19 pm
- Forum: Hardware
- Topic: About the CAN controller.
- Replies: 175
- Views: 308419
Re: About the CAN controller.
If I recall, you might need to add this as a global (outwith a function in your c file, substituting your desired values). I am not sure if the example was intended to pick up these from menuconfig but it looked like it didn't. CAN_device_t CAN_cfg = { .speed=CAN_SPEED_500KBPS, // CAN Node baudrade ...