//发送一次音频数据 //固定为32字节 //返回值:0,发送成功 // 1,VS10xx不缺数据,本次数据未成功发送 u8 VS_Send_MusicData(u8* buf) { u8 n; if(VS_DQ!=0) //送数据给VS10XX { mico_rtos_suspend_all_thread(); VS_XDCS_Clr(); for(n=0;n<32;n++) { VS_SPI_ReadWriteByte(buf[n]); } VS_XDCS_Set(); mico_rtos_resume_all_thread(); }else return 1; return 0;//成功发送了 }
static int rtc_standby( lua_State* L ) { char buff[32]; int nsec = luaL_checkinteger( L, 1 ); if ((nsec < 0) || (nsec > 84559)) { lua_pushstring(L, "wrong interval"); return 1; } sprintf(buff,"Going to standby for %d seconds\r\n", nsec); l_message(NULL,buff); mico_rtos_suspend_all_thread(); MicoSystemStandBy(nsec); mico_rtos_resume_all_thread(); lua_pushstring(L, "RETURN FROM STANDBY"); return 1; }
static int rtc_standbyUntil( lua_State* L ) { RTC_AlarmTypeDef RTC_AlarmStructure; mico_rtos_suspend_all_thread(); RTC_AlarmStructure.RTC_AlarmTime.RTC_H12 = RTC_HourFormat_24; RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = luaL_checkinteger( L, 1 ); RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = luaL_checkinteger( L, 2 ); RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = luaL_checkinteger( L, 3 ); RTC_AlarmStructure.RTC_AlarmDateWeekDay = 0x31; RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date; RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_DateWeekDay ; RTC_AlarmCmd(RTC_Alarm_A, DISABLE); /* Disable the Alarm A */ RTC_ITConfig(RTC_IT_ALRA, DISABLE); /* Clear RTC Alarm Flag */ RTC_ClearFlag(RTC_FLAG_ALRAF); RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure); /* Enable RTC Alarm A Interrupt: this Interrupt will wake-up the system from STANDBY mode (RTC Alarm IT not enabled in NVIC) */ RTC_ITConfig(RTC_IT_ALRA, ENABLE); /* Enable the Alarm A */ RTC_AlarmCmd(RTC_Alarm_A, ENABLE); char buff[32]; sprintf(buff,"Wake up at %02d:%02d:%02d\r\n", RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours, RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes, RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds); l_message(NULL,buff); PWR_EnterSTANDBYMode(); mico_rtos_resume_all_thread(); lua_pushstring(L, "RETURN FROM STANDBY"); return 1; }
USED void _mutex_release(void* mutex) { mico_rtos_resume_all_thread(); }