123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- // Module for interfacing with sigma-delta hardware
- #include "module.h"
- #include "lauxlib.h"
- #include "platform.h"
- // Lua: setup( pin )
- static int sigma_delta_setup( lua_State *L )
- {
- int pin = luaL_checkinteger( L, 1 );
- MOD_CHECK_ID(sigma_delta, pin);
- platform_sigma_delta_setup( pin );
- return 0;
- }
- // Lua: close( pin )
- static int sigma_delta_close( lua_State *L )
- {
- int pin = luaL_checkinteger( L, 1 );
- MOD_CHECK_ID(sigma_delta, pin);
- platform_sigma_delta_close( pin );
- return 0;
- }
- // Lua: setpwmduty( duty_cycle )
- static int sigma_delta_setpwmduty( lua_State *L )
- {
- int duty = luaL_checkinteger( L, 1 );
- if (duty < 0 || duty > 255) {
- return luaL_error( L, "wrong arg range" );
- }
- platform_sigma_delta_set_pwmduty( duty );
- return 0;
- }
- // Lua: setprescale( value )
- static int sigma_delta_setprescale( lua_State *L )
- {
- int prescale = luaL_checkinteger( L, 1 );
- if (prescale < 0 || prescale > 255) {
- return luaL_error( L, "wrong arg range" );
- }
- platform_sigma_delta_set_prescale( prescale );
- return 0;
- }
- // Lua: settarget( value )
- static int sigma_delta_settarget( lua_State *L )
- {
- int target = luaL_checkinteger( L, 1 );
- if (target < 0 || target > 255) {
- return luaL_error( L, "wrong arg range" );
- }
- platform_sigma_delta_set_target( target );
- return 0;
- }
- // Module function map
- static const LUA_REG_TYPE sigma_delta_map[] =
- {
- { LSTRKEY( "setup" ), LFUNCVAL( sigma_delta_setup ) },
- { LSTRKEY( "close" ), LFUNCVAL( sigma_delta_close ) },
- { LSTRKEY( "setpwmduty" ), LFUNCVAL( sigma_delta_setpwmduty ) },
- { LSTRKEY( "setprescale" ), LFUNCVAL( sigma_delta_setprescale ) },
- { LSTRKEY( "settarget" ), LFUNCVAL( sigma_delta_settarget ) },
- { LNILKEY, LNILVAL }
- };
- NODEMCU_MODULE(SIGMA_DELTA, "sigma_delta", sigma_delta_map, NULL);
|