@@ -10,13 +10,24 @@ extern "C" {
10
10
11
11
struct rmt_obj_s ;
12
12
13
+ typedef enum {
14
+ e_reserve_64_items = 1 ,
15
+ e_reserve_128_items = 2 ,
16
+ e_reserve_192_items = 3 ,
17
+ e_reserve_256_items = 4 ,
18
+ e_reserve_320_items = 5 ,
19
+ e_reserve_384_items = 6 ,
20
+ e_reserve_448_items = 7 ,
21
+ e_reserve_512_items = 8 ,
22
+ } rmt_reserve_memsize_t ;
23
+
13
24
typedef struct rmt_obj_s rmt_obj_t ;
14
25
15
26
/**
16
27
* Initialize the object
17
28
*
18
29
*/
19
- rmt_obj_t * rmtInit (int pin , bool tx_not_rx , int entries , int period );
30
+ rmt_obj_t * rmtInit (int pin , bool tx_not_rx , rmt_reserve_memsize_t memsize );
20
31
21
32
/**
22
33
* Sets the clock/divider of timebase the nearest tick to the supplied value in nanoseconds
@@ -25,22 +36,17 @@ rmt_obj_t* rmtInit(int pin, bool tx_not_rx, int entries, int period);
25
36
float rmtSetTick (rmt_obj_t * rmt , float tick );
26
37
27
38
/**
28
- * Sending data in one-go mode (more data must span over multiple channels)
39
+ * Sending data in one-go mode or continual mode
40
+ * (more data being send while updating buffers in interrupts)
29
41
*
30
42
*/
31
43
bool rmtSend (rmt_obj_t * rmt , uint32_t * data , size_t size );
32
44
33
- /**
34
- * Sending data in one-go mode (more data being send while updating buffers in interrupts)
35
- *
36
- */
37
- bool rmtSendQueued (rmt_obj_t * rmt , uint32_t * data , size_t size );
38
-
39
45
/**
40
46
* Initiates simple data receive without interrupts
41
47
*
42
48
*/
43
- bool rmtReceive (rmt_obj_t * rmt , size_t idle_thres );
49
+ bool rmtBeginReceive (rmt_obj_t * rmt , size_t idle_thres );
44
50
45
51
/**
46
52
* Wait method for synchronous receive
@@ -54,11 +60,10 @@ bool rmtWaitForData(rmt_obj_t* rmt, uint32_t* data, size_t size);
54
60
*/
55
61
bool rmtReceiveAsync (rmt_obj_t * rmt , size_t idle_thres , uint32_t * data , size_t size , void * event_flags );
56
62
57
-
58
-
59
63
// TODO:
64
+ // * add timeout to waiForData
65
+ // * try to eliminate idle_thres from the receiving functions
60
66
// * carrier interface
61
- // * mutexes
62
67
// * uninstall interrupt when all channels are deinit
63
68
// * send only-conti mode with circular-buffer
64
69
// * put sanity checks to some macro or inlines
0 commit comments