Pico-Arduino
PicoMulticoreFifo.h
1 #pragma once
2 
3 #include "pico/stdlib.h"
4 #include "pico/multicore.h"
5 
13  public:
15  }
16 
17  ~MuliticoreFifo(){
18  clear();
19  }
20 
21  bool push(uint32_t data,bool is_blocking=true){
22  bool result = true;
23  if (!is_blocking){
24  result = multicore_fifo_wready();
25  }
26  if (result){
27  multicore_fifo_push_blocking(data);
28  }
29  return result;
30  }
31 
32  bool pop(uint32_t &data, bool is_blocking=true){
33  bool result = true;
34  if (!is_blocking){
35  result = !isEmpty();
36  }
37  if (result){
38  data = multicore_fifo_pop_blocking();
39  }
40  return result;
41  }
42 
43  bool isEmpty() {
44  return !multicore_fifo_rvalid();
45  }
46 
47  bool isFull() {
48  return !multicore_fifo_wready();
49  }
50 
51  void clear(){
52  multicore_fifo_drain();
53  }
54 };
The RP2040 contains two FIFOs for passing data, messages or ordered events between the two cores....
Definition: PicoMulticoreFifo.h:12