/*! * @brief Get inup from user about wakeup timeout */ uint8_t setWakeUpTimeOut(void) { uint8_t val0; uint8_t val1; while(1) { PRINTF("Select the wake up timeout in format DD. Possible decimal value is from range 01 - 60 seconds. Eg. 05 means 5 seconds delay"); PRINTF("\r\nWaiting for key press..\r\n\r\n"); val0 = GETCHAR(); if( (val0 >= '0') && (val0 <= '6') ) { val1 = GETCHAR(); if( (val1 >= '0') && (val1 <= '9') ) { val0 = (val0-'0')*10 + (val1-'0'); if( (val0!=0) && (val0<=60) ) { INT_SYS_DisableIRQGlobal(); LLWU_HAL_SetInternalModuleCmd(LLWU_BASE_PTR,kLlwuWakeupModule5,true); INT_SYS_EnableIRQGlobal(); cmd_alarm(val0); return val0; } } } PRINTF("Wrong value!\r\n"); } }
static int threadCmd_Alarm(const MSG_THREAD* msg) { ALARM_INFO *msg_data = (ALARM_INFO*)msg->data; if (msg->length != sizeof(ALARM_INFO)) { LOG_ERROR("msg length error: msgLen(%d)!", msg->length); return -1; } LOG_DEBUG("receive thread command CMD_VIBRATE: alarmType(%d).", msg_data->alarm_type); return cmd_alarm(msg_data->alarm_type); }