mirror of
git://projects.qi-hardware.com/nn-usb-fpga.git
synced 2025-04-21 12:27:27 +03:00
Adding LUA tutorials: lua_calls_C1 - lua_calls_C5
Adding blinker demo: lua_blink_led
This commit is contained in:
15
lua/examples/lua_calls_C4/Makefile
Normal file
15
lua/examples/lua_calls_C4/Makefile
Normal file
@@ -0,0 +1,15 @@
|
||||
CC = mipsel-openwrt-linux-gcc
|
||||
CXX = mipsel-openwrt-linux-g++
|
||||
OPENWRT_BUILD_DIR = /home/cain/Embedded/ingenic/sakc/build/openwrt-xburst/staging_dir/target-mipsel_uClibc-0.9.30.1
|
||||
INCLUDE = -I. -I$(OPENWRT_BUILD_DIR)/usr/include/
|
||||
WARNINGS = -Wcast-align -Wpacked -Wpadded -Wall
|
||||
CCFLAGS = ${INCLUDE} ${DEBUG} ${WARNINGS} -std=c99 -fPIC
|
||||
LDFLAGS =
|
||||
DEBUG = -O3 -g0
|
||||
TARGET = candy
|
||||
|
||||
#luaavg:
|
||||
# $(CXX) ${INCLUDE} -Wno-variadic-macros -fPIC luaavg.cc -llua -ldl -o luaavg
|
||||
|
||||
clean:
|
||||
rm -f luaavg
|
||||
6
lua/examples/lua_calls_C4/avg.lua
Normal file
6
lua/examples/lua_calls_C4/avg.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
-- call a C++ function
|
||||
|
||||
avg, sum = average(10, 20, 30, 40, 50)
|
||||
|
||||
print("The average is ", avg)
|
||||
print("The sum is ", sum)
|
||||
58
lua/examples/lua_calls_C4/luaavg.cc
Normal file
58
lua/examples/lua_calls_C4/luaavg.cc
Normal file
@@ -0,0 +1,58 @@
|
||||
#include <stdio.h>
|
||||
|
||||
extern "C" {
|
||||
#include "lua.h"
|
||||
#include "lualib.h"
|
||||
#include "lauxlib.h"
|
||||
}
|
||||
|
||||
/* the Lua interpreter */
|
||||
lua_State* L;
|
||||
|
||||
static int average(lua_State *L)
|
||||
{
|
||||
/* get number of arguments */
|
||||
int n = lua_gettop(L);
|
||||
int sum = 0;
|
||||
int i;
|
||||
|
||||
/* loop through each argument */
|
||||
for (i = 1; i <= n; i++)
|
||||
{
|
||||
/* total the arguments */
|
||||
sum += lua_tonumber(L, i);
|
||||
}
|
||||
|
||||
/* push the average */
|
||||
lua_pushnumber(L, sum / n);
|
||||
|
||||
/* push the sum */
|
||||
lua_pushnumber(L, sum);
|
||||
|
||||
/* return the number of results */
|
||||
return 2;
|
||||
}
|
||||
|
||||
int main ( int argc, char *argv[] )
|
||||
{
|
||||
/* initialize Lua */
|
||||
L = lua_open();
|
||||
|
||||
/* load Lua base libraries */
|
||||
luaL_openlibs(L);
|
||||
|
||||
/* register our function */
|
||||
lua_register(L, "average", average);
|
||||
|
||||
/* run the script */
|
||||
luaL_dofile(L, "avg.lua");
|
||||
|
||||
/* cleanup Lua */
|
||||
lua_close(L);
|
||||
|
||||
/* pause */
|
||||
printf( "Press enter to exit..." );
|
||||
getchar();
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user