/*--------------------------- 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; }
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"); } }