http://developer.mbed.org/users/AjK/code/PinDetect/#cb3afc45028b