/* ----------------------------------------------------------------------------*
 *
 *  Function Name : enableGestureSensor(int interrupts)
 *
 *  Description  :Starts the gesture recognition engine on the APDS-9960
 *
 *  Input : interrupts true to enable hardware external interrupt on gesture
 *
 *  Output : None
 *
 *  Return : True if engine enabled correctly. False on error.
 * ----------------------------------------------------------------------------*
 * Authors: Sarath S
 * Date: May 17, 2017
 * ---------------------------------------------------------------------------*/
int enableGestureSensor(int interrupts)
{
    
    /* Enable gesture mode
       Set ENABLE to 0 (power off)
       Set WTIME to 0xFF
       Set AUX to LED_BOOST_300
       Enable PON, WEN, PEN, GEN in ENABLE 
    */
    resetGestureParameters();
    if( !i2c1_write(APDS9960_WTIME, 0xFF) ) {
        return false;
    }
    if( !i2c1_write(APDS9960_PPULSE, DEFAULT_GESTURE_PPULSE) ) {
        return false;
    }
    if( !setLEDBoost(LED_BOOST_300) ) {
        return false;
    }
    if( interrupts ) {
        if( !setGestureIntEnable(1) ) {
            return false;
        }
    } else {
        if( !setGestureIntEnable(0) ) {
            return false;
        }
    }
    if( !setGestureMode(1) ) {
        return false;
    }
    if( !enablePower() ){
        return false;
    }
    if( !setMode(WAIT, 1) ) {
        return false;
    }
    if( !setMode(PROXIMITY, 1) ) {
        return false;
    }
    if( !setMode(GESTURE, 1) ) {
        return false;
    }
    
    return true;
}/* End of this function */
Esempio n. 2
0
void enable_gesture() {
	resetGestureParameters();

	wireWriteDataByte(APDS9960_WTIME, 0xFF);

	wireWriteDataByte(APDS9960_PPULSE, DEFAULT_GESTURE_PPULSE);

	setLEDBoost(LED_BOOST_300);

	setGestureIntEnable(1);

	setGestureMode(1);

	enablePower();

	setMode(WAIT, 1);

	setMode(PROXIMITY, 1);

	setMode(GESTURE, 1);
}