Skip to content

Instantly share code, notes, and snippets.

@chomy
Created December 17, 2014 10:49
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save chomy/003deea83b5a13ad1ee3 to your computer and use it in GitHub Desktop.
Save chomy/003deea83b5a13ad1ee3 to your computer and use it in GitHub Desktop.
Common Lisp package for GPIO control of Raspberry Pi
(defpackage :BCM2835
(:use :FFI)
(:export :init
:close
:gpio-fsel
:gpio-write
:gpio-lev
:gpio-set
:gpio-clr
:delay
:delay-microseconds))
(in-package :BCM2835)
(ffi:open-foreign-library "libbcm2835.so")
(ffi:def-call-out init
(:name "bcm2835_init")
(:language :stdc)
(:library "libbcm2835.so"))
(ffi:def-call-out close
(:name "bcm2835_close")
(:language :stdc)
(:library "libbcm2835.so"))
(ffi:def-call-out gpio-fsel
(:name "bcm2835_gpio_fsel")
(:arguments (pin ffi:uint8) (mode ffi:uint8))
(:language :stdc)
(:library "libbcm2835.so"))
(ffi:def-call-out gpio-write
(:name "bcm2835_gpio_write")
(:arguments (pin ffi:uint8) (on ffi:uint8))
(:language :stdc)
(:library "libbcm2835.so"))
(ffi:def-call-out gpio-lev
(:name "bcm2835_gpio_lev")
(:return-type ffi:uint8)
(:arguments (pin ffi:uint8))
(:language :stdc)
(:library "libbcm2835.so"))
(ffi:def-call-out gpio-set
(:name "bcm2835_gpio_set")
(:arguments (pin ffi:uint8))
(:language :stdc)
(:library "libbcm2835.so"))
(ffi:def-call-out gpio-clr
(:name "bcm2835_gpio_clr")
(:arguments (pin ffi:uint8))
(:language :stdc)
(:library "libbcm2835.so"))
(ffi:def-call-out delay
(:name "bcm2835_delay")
(:arguments (millis ffi:uint))
(:language :stdc)
(:library "libbcm2835.so"))
(ffi:def-call-out delay-microseconds
(:name "bcm2835_delayMicroseconds")
(:arguments (micros ffi:uint64))
(:language :stdc)
(:library "libbcm2835.so"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment