/*--------------------------- ble mode operate -------------------------*/
void system_ble_work_mode_operate(void)
{
    if(BL.E.TIME_OUT_STATE == true || BL.E.END_TRANS_STATE == true)  // time out
    {
        ble_close();
    }
    else
    {
        ble_rec_handle();
    }

    // ble_data_operate;
}
Exemple #2
0
void GPIOTE_IRQHandler()
{
    if((NRF_GPIOTE->EVENTS_IN[0] == 1) && (NRF_GPIOTE->INTENSET & GPIOTE_INTENSET_IN0_Msk) )  
    {
        NRF_GPIOTE->EVENTS_IN[0] = 0;
        //NRF_GPIOTE->INTENSET  = GPIOTE_INTENSET_IN0_Disabled << GPIOTE_INTENSET_IN0_Pos;
        
            switch(get_work_mode())
            {
                // tap cyclical
            case SYSTEM_PEDOMETER_MODE :
                if(get_pedo_slice_handle_state() == true)
                    pedo_data_end_handle();
                
                clear_sleep_countdown();
                work_mode_switch();
                work_switch_set();                
                break;
                //
            case SYSTEM_USER_SLEEP_MODE:
                work_mode_switch();
                work_switch_set();  
                break;

            case SYSTEM_BLE_WORK_MODE:
                if(BL.E.CONNECT_STATE == false)          // ble is not paired with phone
                {
                    ble_close();
                }
                break;
            }
   
    }

    // Event causing the interrupt must be cleared.
    if((NRF_GPIOTE->EVENTS_IN[1] == 1) && (NRF_GPIOTE->INTENSET & GPIOTE_INTENSET_IN1_Msk)  )  
    {
        NRF_GPIOTE->EVENTS_IN[1] = 0;
        xprintf("GPIO INT.\r\n");
    }

}