Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
30ada6f0
Commit
30ada6f0
authored
Nov 02, 2018
by
devsaurus
Browse files
add i2s.mute()
parent
48b9518d
Changes
2
Hide whitespace changes
Inline
Side-by-side
components/modules/i2s.c
View file @
30ada6f0
...
...
@@ -272,7 +272,9 @@ static int node_i2s_read( lua_State *L )
int
wait_ms
=
luaL_optint
(
L
,
3
,
0
);
char
*
data
=
luaM_malloc
(
L
,
bytes
);
size_t
read
;
i2s_read
(
i2s_id
,
data
,
bytes
,
&
read
,
wait_ms
/
portTICK_RATE_MS
);
if
(
i2s_read
(
i2s_id
,
data
,
bytes
,
&
read
,
wait_ms
/
portTICK_RATE_MS
)
!=
ESP_OK
)
return
luaL_error
(
L
,
"I2S driver error"
);
lua_pushlstring
(
L
,
data
,
read
);
luaM_free
(
L
,
data
);
...
...
@@ -298,6 +300,21 @@ static int node_i2s_write( lua_State *L )
return
0
;
}
// Lua: mute( i2s_id )
static
int
node_i2s_mute
(
lua_State
*
L
)
{
int
stack
=
0
;
int
i2s_id
=
luaL_checkinteger
(
L
,
++
stack
);
I2S_CHECK_ID
(
i2s_id
);
if
(
i2s_zero_dma_buffer
(
i2s_id
)
!=
ESP_OK
)
return
luaL_error
(
L
,
"I2S driver error"
);
return
0
;
}
// Module function map
static
const
LUA_REG_TYPE
i2s_map
[]
=
{
...
...
@@ -305,6 +322,7 @@ static const LUA_REG_TYPE i2s_map[] =
{
LSTRKEY
(
"stop"
),
LFUNCVAL
(
node_i2s_stop
)
},
{
LSTRKEY
(
"read"
),
LFUNCVAL
(
node_i2s_read
)
},
{
LSTRKEY
(
"write"
),
LFUNCVAL
(
node_i2s_write
)
},
{
LSTRKEY
(
"mute"
),
LFUNCVAL
(
node_i2s_mute
)
},
{
LSTRKEY
(
"FORMAT_I2S"
),
LNUMVAL
(
I2S_COMM_FORMAT_I2S
)
},
{
LSTRKEY
(
"FORMAT_I2S_MSB"
),
LNUMVAL
(
I2S_COMM_FORMAT_I2S_MSB
)
},
...
...
docs/en/modules/i2s.md
View file @
30ada6f0
...
...
@@ -11,6 +11,39 @@ The I2S module provides access to the in-built two I2S controllers.
!!! note "ADC mode configuration"
Only ADC1 is available for ADC built-in mode.
## i2s.mute()
Mute the I2S channel. The hardware buffer is instantly filled with silence.
#### Syntax
`i2s.mute(i2s_num)
#### Parameters
- `
i2s_num
` I2S peripheral 0 or 1
#### Returns
`
nil
`
An error is thrown in case of invalid parameters or if the i2s driver failed.
## i2s.read()
Read data from I2S receive buffer.
#### Syntax
`
i2s.read(i2s_num, size[, wait_ms])
`
#### Parameters
- `
i2s_num
` I2S peripheral 0 or 1
- `
size
` Bytes to read
- `
wait_ms
` Millisecond to wait if data is not ready. Optional, defaults to 0 (not to wait) when omitted.
#### Returns
Data read from data-in pin. If data is not ready in `
wait_ms
` millisecond, less than `
size
` bytes can be returned.
An error is thrown in case of invalid parameters or if the i2s driver failed.
## i2s.start()
Configuration and start I2S bus.
...
...
@@ -65,7 +98,7 @@ i2s.start(i2s_num, cfg, cb)
#### Returns
`
nil
`
An error is thrown in case of invalid parameters or if the
channel
failed.
An error is thrown in case of invalid parameters or if the
i2s driver
failed.
## i2s.stop()
...
...
@@ -80,22 +113,7 @@ Stop I2S bus.
#### Returns
`
nil
`
An error is thrown in case of invalid parameters or if the channel failed.
## i2s.read()
Read data from I2S receive buffer.
#### Syntax
`i2s.read(i2s_num, size[, wait_ms])`
#### Parameters
-
`i2s_num`
I2S peripheral 0 or 1
-
`size`
Bytes to read
-
`wait_ms`
Millisecond to wait if data is not ready. Optional, defaults to 0 (not to wait) when omitted.
#### Returns
Data read from data-in pin. If data is not ready in
`wait_ms`
millisecond, less than
`size`
bytes can be returned.
An error is thrown in case of invalid parameters or if the i2s driver failed.
## i2s.write()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment