//***************************************************************************** // // Implementations of function that are required by usb framework. // //***************************************************************************** void usbsuspHookEnteringSuspend(bool remoteWakeupAllowed) { if (remoteWakeupAllowed) { GPIOPowIntClear(BSP_KEY_SEL_BASE, BSP_KEY_SELECT); GPIOPowIntEnable(BSP_KEY_SEL_BASE, BSP_KEY_SELECT); IntPendClear(INT_GPIOA); IntEnable(INT_GPIOA); GPIOPowIntClear(BSP_KEY_DIR_BASE, BSP_KEY_DIR_ALL); GPIOPowIntEnable(BSP_KEY_DIR_BASE, BSP_KEY_DIR_ALL); IntPendClear(INT_GPIOC); IntEnable(INT_GPIOC); } }
void zclEnergyHarvester_Init( byte task_id ) { zclEnergyHarvester_TaskID = task_id; // This app is part of the Home Automation Profile zclHA_Init( &zclSampleLight_SimpleDesc ); // Register for a test endpoint afRegister( &testEp ); zcl_registerPlugin( ZCL_CLUSTER_ID_MS_ILLUMINANCE_MEASUREMENT, ZCL_CLUSTER_ID_MS_ALL, zclEnergyHarvester_HdlIncoming ); ZDO_RegisterForZDOMsg( zclEnergyHarvester_TaskID, End_Device_Bind_rsp ); #if DEV_TYPE == COORDINATOR ZDO_RegisterForZDOMsg( zclEnergyHarvester_TaskID, Device_annce ); #else adc_Init(); // Configure signal from off-chip timer to be wake-up signal GPIODirModeSet( GPIO_B_BASE, GPIO_PIN_3 , GPIO_DIR_MODE_IN ); // Configure deep sleep in power mode 3, woken up by off-chip timer SysCtrlDeepSleepSetting(); SysCtrlPowerModeSet( SYS_CTRL_PM_3 ); GPIODirModeSet( GPIO_B_BASE, GPIO_PIN_4 , GPIO_DIR_MODE_IN ); HWREG( SYS_CTRL_IWE ) = 0x02; GPIOPowIntTypeSet( GPIO_B_BASE, GPIO_PIN_4, GPIO_POW_RISING_EDGE ); GPIOPowIntClear( GPIO_B_BASE, GPIO_PIN_4 ); GPIOPowIntEnable( GPIO_B_BASE, GPIO_PIN_4 ); // Done with off-chip timer acknowledge GPIOPinWrite( GPIO_B_BASE, GPIO_PIN_5, GPIO_PIN_5 ); #endif }
/************************************************************************************************** * @fn SysCtrlPowIntEnableSetting * * @brief Enable power-up interrupt for the specified port, using * GPIO_PI_IEN register * * input parameters * * @param None. * * output parameters * * None. * * @return None. ************************************************************************************************** */ void SysCtrlPowIntEnableSetting(void) { GPIOPowIntEnable(BSP_KEY_DIR_BASE, BSP_KEY_LEFT | BSP_KEY_RIGHT | BSP_KEY_UP | BSP_KEY_DOWN); GPIOPowIntEnable(BSP_KEY_SEL_BASE, BSP_KEY_SELECT); }
/************************************************************************************************** * @fn SysCtrlPowIntEnableSetting * * @brief Enable power-up interrupt for the specified port, using * GPIO_PI_IEN register * * input parameters * * @param None. * * output parameters * * None. * * @return None. ************************************************************************************************** */ void SysCtrlPowIntEnableSetting(void) { GPIOPowIntEnable(GPIO_B_BASE, GPIO_PIN_2); }