def run_on_edge(callback, edge, timeout=nil, repeats=nil)
      GPIO::run_on_edge(callback, @pin, edge, timeout, repeats)
    end
def run_on_edge(callback, edge, timeout=nil, repeats=nil)
      GPIO::run_on_edge(callback, @pin, edge, timeout, repeats)
    end
Runs a callback on an edge trigger event.
 This creates a new thread that runs in the background

 @param callback A method to call when the edge trigger is detected.  This method should take 3 arguments, the pin, the edge, and the counter
 @param edge should be a symbol representing the trigger type, e.g. :RISING, :FALLING, :BOTH
 @param timeout is optional and specifies a time window to wait
 @param repeats is optional and specifies the number of times the callback will be run

 @example
   p9_11 = GPIOPin.new(:P9_11, :IN)
   p9_11.run_on_edge(lambda { |pin,edge,count| puts "[#{count}] #{pin} -- #{edge}" }, :P9_11, :RISING)    def run_on_edge(callback, edge, timeout=nil, repeats=nil)