esp32-owb
ESP32-compatible C library for Maxim Integrated 1-Wire Bus.
 All Data Structures Files Functions Variables Enumerations Enumerator Macros Pages
owb_rmt.h
Go to the documentation of this file.
1 /*
2  * MIT License
3  *
4  * Copyright (c) 2017 David Antliff
5  * Copyright (c) 2017 Chris Morgan <chmorgan@gmail.com>
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a copy
8  * of this software and associated documentation files (the "Software"), to deal
9  * in the Software without restriction, including without limitation the rights
10  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11  * copies of the Software, and to permit persons to whom the Software is
12  * furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice shall be included in all
15  * copies or substantial portions of the Software.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23  * SOFTWARE.
24  */
25 
34 #pragma once
35 #ifndef OWB_RMT_H
36 #define OWB_RMT_H
37 
38 #include "freertos/FreeRTOS.h"
39 #include "freertos/queue.h"
40 #include "freertos/ringbuf.h"
41 #include "driver/rmt.h"
42 
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46 
50 typedef struct
51 {
52  int tx_channel;
53  int rx_channel;
54  RingbufHandle_t rb;
55  int gpio;
58 
68 OneWireBus* owb_rmt_initialize(owb_rmt_driver_info * info, gpio_num_t gpio_num,
69  rmt_channel_t tx_channel, rmt_channel_t rx_channel);
70 
71 #ifdef __cplusplus
72 }
73 #endif
74 
75 #endif // OWB_RMT_H
int rx_channel
RMT channel to use for RX.
Definition: owb_rmt.h:53
RMT driver information.
Definition: owb_rmt.h:50
Structure containing 1-Wire bus information relevant to a single instance.
Definition: owb.h:68
int gpio
OneWireBus GPIO.
Definition: owb_rmt.h:55
RingbufHandle_t rb
Ring buffer handle.
Definition: owb_rmt.h:54
OneWireBus bus
OneWireBus instance.
Definition: owb_rmt.h:56
int tx_channel
RMT channel to use for TX.
Definition: owb_rmt.h:52
OneWireBus * owb_rmt_initialize(owb_rmt_driver_info *info, gpio_num_t gpio_num, rmt_channel_t tx_channel, rmt_channel_t rx_channel)
Initialise the RMT driver.
Definition: owb_rmt.c:454