Add function node.getcpufreq() (#2375)

This commit is contained in:
dnc40085 2018-05-20 00:38:33 -07:00 committed by Marcel Stör
parent 914a4afc96
commit dd02faef27
2 changed files with 29 additions and 0 deletions

View File

@ -386,6 +386,13 @@ static int node_setcpufreq(lua_State* L)
return 1; return 1;
} }
// Lua: freq = node.getcpufreq()
static int node_getcpufreq(lua_State* L)
{
lua_pushinteger(L, system_get_cpu_freq());
return 1;
}
// Lua: code, reason [, exccause, epc1, epc2, epc3, excvaddr, depc ] = bootreason() // Lua: code, reason [, exccause, epc1, epc2, epc3, excvaddr, depc ] = bootreason()
static int node_bootreason (lua_State *L) static int node_bootreason (lua_State *L)
{ {
@ -622,6 +629,7 @@ static const LUA_REG_TYPE node_map[] =
{ LSTRKEY( "CPU80MHZ" ), LNUMVAL( CPU80MHZ ) }, { LSTRKEY( "CPU80MHZ" ), LNUMVAL( CPU80MHZ ) },
{ LSTRKEY( "CPU160MHZ" ), LNUMVAL( CPU160MHZ ) }, { LSTRKEY( "CPU160MHZ" ), LNUMVAL( CPU160MHZ ) },
{ LSTRKEY( "setcpufreq" ), LFUNCVAL( node_setcpufreq) }, { LSTRKEY( "setcpufreq" ), LFUNCVAL( node_setcpufreq) },
{ LSTRKEY( "getcpufreq" ), LFUNCVAL( node_getcpufreq) },
{ LSTRKEY( "bootreason" ), LFUNCVAL( node_bootreason) }, { LSTRKEY( "bootreason" ), LFUNCVAL( node_bootreason) },
{ LSTRKEY( "restore" ), LFUNCVAL( node_restore) }, { LSTRKEY( "restore" ), LFUNCVAL( node_restore) },
{ LSTRKEY( "random" ), LFUNCVAL( node_random) }, { LSTRKEY( "random" ), LFUNCVAL( node_random) },

View File

@ -185,6 +185,27 @@ none
#### Returns #### Returns
flash size in bytes (integer) flash size in bytes (integer)
## node.getcpufreq()
Get the current CPU Frequency.
#### Syntax
`node.getcpufreq()`
#### Parameters
none
#### Returns
Current CPU frequency (number)
#### Example
```lua
do
local cpuFreq = node.getcpufreq()
print("The current CPU frequency is " .. cpuFreq .. " MHz")
end
```
## node.heap() ## node.heap()
Returns the current available heap size in bytes. Note that due to fragmentation, actual allocations of this size may not be possible. Returns the current available heap size in bytes. Note that due to fragmentation, actual allocations of this size may not be possible.