xref: /netbsd-src/share/examples/lua/gpio.lua (revision e6b9421d3609ac474a2111abd4193b1d3ca49ba8)
1*e6b9421dSmbalmer-- $NetBSD: gpio.lua,v 1.4 2017/05/10 07:51:07 mbalmer Exp $
2*e6b9421dSmbalmer
3*e6b9421dSmbalmer-- This example works only if all pins, starting from pin 0 up to the
4*e6b9421dSmbalmer-- number returned by gpio.info() are, readable.  It does _not_ work if
5*e6b9421dSmbalmer-- only part of the pins are configured.
6250c0b9dSmbalmer
74ab4902eSlnetolocal gpio = require 'gpio'
8250c0b9dSmbalmer
9250c0b9dSmbalmerprint(gpio._VERSION .. ' - ' .. gpio._DESCRIPTION)
10250c0b9dSmbalmerprint(gpio._COPYRIGHT)
11250c0b9dSmbalmerprint()
12250c0b9dSmbalmer
13250c0b9dSmbalmerg = gpio.open('/dev/gpio0')
14250c0b9dSmbalmer
15250c0b9dSmbalmerlocal npins = g:info()
16250c0b9dSmbalmer
17250c0b9dSmbalmerprint('gpio0 has ' .. npins .. ' pins.')
18250c0b9dSmbalmer
19ae1a4436Smbalmerfor n = 0, npins - 1 do
20250c0b9dSmbalmer	print('pin ' .. n .. ': ' .. g:read(n))
21250c0b9dSmbalmerend
22250c0b9dSmbalmer
23ae1a4436Smbalmerlocal oldval = g:write(31, gpio.PIN_HIGH)
24ae1a4436Smbalmerprint('pin 31: ' .. oldval .. ' -> ' .. g:read(31))
25250c0b9dSmbalmer
26ae1a4436Smbalmeroldval = g:toggle(31)
27ae1a4436Smbalmerprint('pin 31: ' .. oldval .. ' -> ' .. g:read(31))
28250c0b9dSmbalmer
29ae1a4436Smbalmerg:write(31, gpio.PIN_LOW)
30250c0b9dSmbalmer
31ae1a4436Smbalmerg:write(31, 5)
32250c0b9dSmbalmer
33