|
| typedef void(* | esp_sdr_ring_gen_t) (void *user, uint32_t *dst, uint64_t index, uint32_t n) |
|
|
uint32_t * | esp_sdr_ring_burst_buf (size_t *words) |
| | The burst bank, the CPUs' to write while no burst is armed and outside its waveform's [from, words) once armed.
|
| int | esp_sdr_ring_burst_arm (uint64_t end_pair, uint64_t limit_pair, esp_sdr_ring_gen_t gen, void *user, uint32_t from, uint32_t words) |
| | Arm a burst (from another CPU than the run's).
|
| bool | esp_sdr_ring_burst_fire (uint64_t at_pair) |
| | Play the armed burst with its first sample at at_pair (at once if that has passed).
|
|
void | esp_sdr_ring_burst_cancel (void) |
| | Drop the armed burst; the capture goes on or restarts.
|
| bool | esp_sdr_ring_burst_busy (void) |
A run with esp_sdr_ring_cfg::spare_bank can interrupt its capture for one transmitted burst (an 802.15.4 ACK) from bank 2: armed with the pair at which a received frame ends, the run stops the capture at the first unit boundary at or after it, hands the last unit to the sink, turns the front end to TX and waits; fired, it plays the bank once at 40 MS/s from the given pair on; then it turns back to RX and restarts the capture (the output index jumps over the gap, the pair index keeps counting real time). All pairs are on the run's pair index (esp_sdr_ring_now()).
◆ esp_sdr_ring_gen_t
| typedef void(* esp_sdr_ring_gen_t) (void *user, uint32_t *dst, uint64_t index, uint32_t n) |
◆ esp_sdr_ring_burst_arm()
| int esp_sdr_ring_burst_arm |
( |
uint64_t | end_pair, |
|
|
uint64_t | limit_pair, |
|
|
esp_sdr_ring_gen_t | gen, |
|
|
void * | user, |
|
|
uint32_t | from, |
|
|
uint32_t | words ) |
Arm a burst (from another CPU than the run's).
- Parameters
-
| end_pair | The capture runs at least until this pair. |
| limit_pair | Without a fire by this pair the burst is dropped, and a fire seen later is skipped. |
| gen | Builds words [from, words) of the bank between polls before the stop, and the rest after it; words below from are kept. |
| user | Passed to gen. |
| from | First word gen builds; the caller has written those before it. |
| words | Length of the burst in DAC words, ESP_SDR_SAMPLES_MIN to ESP_SDR_SAMPLES_MAX. |
- Returns
- 0, -EINVAL, or -EBUSY when no run with a spare bank is active or a burst is armed already.
◆ esp_sdr_ring_burst_busy()
| bool esp_sdr_ring_burst_busy |
( |
void | | ) |
|
- Returns
- Whether a burst is armed or running.
◆ esp_sdr_ring_burst_fire()
| bool esp_sdr_ring_burst_fire |
( |
uint64_t | at_pair | ) |
|
Play the armed burst with its first sample at at_pair (at once if that has passed).
- Returns
- false if no burst was armed (dropped).