Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_43676597
arduino-esp32
提交
fd875793
A
arduino-esp32
项目概览
weixin_43676597
/
arduino-esp32
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
arduino-esp32
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
fd875793
编写于
2月 28, 2023
作者:
R
Rodrigo Garcia
提交者:
GitHub
2月 28, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Change Propose for RMT
上级
8e939b01
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
63 addition
and
0 deletion
+63
-0
cores/esp32/esp32-hal-rmt.h
cores/esp32/esp32-hal-rmt.h
+63
-0
未找到文件。
cores/esp32/esp32-hal-rmt.h
浏览文件 @
fd875793
...
...
@@ -58,10 +58,59 @@ typedef struct {
}
rmt_data_t
;
/*
// NEW RMT Ardunish API to replace the HAL C API
class RMT_TX: public Stream {
public:
RMT_TX(int pin, rmt_reserve_memsize_t memsize = RMT_MEM_64);
float setTick(float tick);
// Send RMT blocking/non-blocking or lopping depending of the Settings of this object
size_t write(rmt_data_t *data, size_t size);
void flush(); // wait until all data is sent - alternative to write blocking
void onTransmit(rmt_tx_data_cb_t cb, void * arg); // set async end of write callback
// can it be replaced by flush()?
void setBlocking(bool block); // Better than the one below?
size_t writeBlocking(rmt_data_t* data, size_t size);
// sets looping write mode
void setLoop(bool loop); // Better than the one below?
size_t writeLoop(rmt_data_t* data, size_t size);
bool setCarrier(bool carrier_en, bool carrier_level, uint32_t low, uint32_t high);
void detach();
}
class RMT_RX: public Stream {
public:
RMT_RX(int pin, rmt_reserve_memsize_t memsize = RMT_MEM_64);
float setTick(float tick);
//bool rmtRead(int pin, rmt_rx_data_cb_t cb, void * arg);
void onReceive(rmt_rx_data_cb_t cb, void * arg); // set async read callback
// blocking reading - should it set a timeout?
size_t read(uint32_t* data, size_t size);
size_t available();
bool setCarrier(bool carrier_en, bool carrier_level, uint32_t low, uint32_t high);
bool setFilter(bool filter_en, uint32_t filter_level);
bool setRxThreshold(uint32_t value);
void detach();
}
*/
/**
* Prints object information
*
*/
//void _rmtDumpStatus(int pin);
void
_rmtDumpStatus
(
rmt_obj_t
*
rmt
);
/**
...
...
@@ -74,6 +123,7 @@ rmt_obj_t* rmtInit(int pin, bool tx_not_rx, rmt_reserve_memsize_t memsize);
* Sets the clock/divider of timebase the nearest tick to the supplied value in nanoseconds
* return the real actual tick value in ns
*/
//float rmtSetTick(int pin, float tick);
float
rmtSetTick
(
rmt_obj_t
*
rmt
,
float
tick
);
/**
...
...
@@ -81,6 +131,7 @@ float rmtSetTick(rmt_obj_t* rmt, float tick);
* (more data being send while updating buffers in interrupts)
* Non-Blocking mode - returns right after executing
*/
//bool rmtWrite(int pin, rmt_data_t* data, size_t size);
bool
rmtWrite
(
rmt_obj_t
*
rmt
,
rmt_data_t
*
data
,
size_t
size
);
/**
...
...
@@ -88,18 +139,21 @@ bool rmtWrite(rmt_obj_t* rmt, rmt_data_t* data, size_t size);
* (more data being send while updating buffers in interrupts)
* Blocking mode - only returns when data has been sent
*/
//bool rmtWriteBlocking(int pin, rmt_data_t* data, size_t size);
bool
rmtWriteBlocking
(
rmt_obj_t
*
rmt
,
rmt_data_t
*
data
,
size_t
size
);
/**
* Loop data up to the reserved memsize continuously
*
*/
//bool rmtLoop(int pin, rmt_data_t* data, size_t size);
bool
rmtLoop
(
rmt_obj_t
*
rmt
,
rmt_data_t
*
data
,
size_t
size
);
/**
* Initiates async receive, event flag indicates data received
*
*/
//bool rmtReadAsync(int pin, rmt_data_t* data, size_t size, void* eventFlag, bool waitForData, uint32_t timeout);
bool
rmtReadAsync
(
rmt_obj_t
*
rmt
,
rmt_data_t
*
data
,
size_t
size
,
void
*
eventFlag
,
bool
waitForData
,
uint32_t
timeout
);
/**
...
...
@@ -107,12 +161,14 @@ bool rmtReadAsync(rmt_obj_t* rmt, rmt_data_t* data, size_t size, void* eventFlag
* and callback with data from ISR
*
*/
//bool rmtRead(int pin, rmt_rx_data_cb_t cb, void * arg);
bool
rmtRead
(
rmt_obj_t
*
rmt
,
rmt_rx_data_cb_t
cb
,
void
*
arg
);
/***
* Ends async receive started with rmtRead(); but does not
* rmtDeInit().
*/
//bool rmtEnd(int pin);
bool
rmtEnd
(
rmt_obj_t
*
rmt
);
/* Additional interface */
...
...
@@ -121,38 +177,45 @@ bool rmtEnd(rmt_obj_t* rmt);
* Start reception
*
*/
//bool rmtBeginReceive(int pin);
bool
rmtBeginReceive
(
rmt_obj_t
*
rmt
);
/**
* Checks if reception completes
*
*/
//bool rmtReceiveCompleted(int pin);
bool
rmtReceiveCompleted
(
rmt_obj_t
*
rmt
);
/**
* Reads the data for particular channel
*
*/
//bool rmtReadData(int pin, uint32_t* data, size_t size);
bool
rmtReadData
(
rmt_obj_t
*
rmt
,
uint32_t
*
data
,
size_t
size
);
/**
* Setting threshold for Rx completed
*/
//bool rmtSetRxThreshold(int pin, uint32_t value);
bool
rmtSetRxThreshold
(
rmt_obj_t
*
rmt
,
uint32_t
value
);
/**
* Setting carrier
*/
//bool rmtSetCarrier(int pin, bool carrier_en, bool carrier_level, uint32_t low, uint32_t high);
bool
rmtSetCarrier
(
rmt_obj_t
*
rmt
,
bool
carrier_en
,
bool
carrier_level
,
uint32_t
low
,
uint32_t
high
);
/**
* Setting input filter
*/
//bool rmtSetFilter(int pin, bool filter_en, uint32_t filter_level);
bool
rmtSetFilter
(
rmt_obj_t
*
rmt
,
bool
filter_en
,
uint32_t
filter_level
);
/**
* Deinitialize the driver
*/
//bool rmtDeinit(int pin);
bool
rmtDeinit
(
rmt_obj_t
*
rmt
);
// TODO:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录