下面代码定时器存在什么问题 然后加入星期选项
/********************************************************** * @file user_main.c * @brief 程序入口文件 ***********************************************************/ #include "ets_sys.h" #include "osapi.h" #include "user_interface.h" #include "gagent_soc.h" #include "user_devicefind.h" #include "user_webserver.h" #include "gizwits_product.h" #include "driver/hal_key.h" #if ESP_PLATFORM #include "user_esp_platform.h" #endif #ifdef SERVER_SSL_ENABLE #include "ssl/cert.h" #include "ssl/private_key.h" #else #ifdef CLIENT_SSL_ENABLE unsigned char *default_certificate; unsigned int default_certificate_len = 0; unsigned char *default_private_key; unsigned int default_private_key_len = 0; #endif #endif /**@name 用户定时器相关参数 * @{ */ #define USER_TIME_MS 50 ///< 50毫秒时间 LOCAL os_timer_t userTimer; ///< 用户定时器结构 #define NTP_TIME_1000MS 1000 ///< 1000毫秒时间 LOCAL os_timer_t ntpTimer1000ms; ///< 用户定时器结构 /**@} */ /**@name 按键的相关定义 * @{ */ #define GPIO_KEY_NUM 4 ///< 定义按键成员的总数。 #define KEY_0_IO_MUX PERIPHS_IO_MUX_GPIO2_U ///< ESP8266 GPIO 功能 #define KEY_0_IO_NUM 2 ///< ESP8266 GPIO 数 #define KEY_0_IO_FUNC FUNC_GPIO2 ///< ESP8266 GPIO 名称 #define KEY_1_IO_MUX PERIPHS_IO_MUX_GPIO0_U ///< ESP8266 GPIO 功能 #define KEY_1_IO_NUM 0 ///< ESP8266 GPIO 数 #define KEY_1_IO_FUNC FUNC_GPIO0 ///< ESP8266 GPIO 名称 #define KEY_2_IO_MUX PERIPHS_IO_MUX_GPIO4_U ///< ESP8266 GPIO 功能 #define KEY_2_IO_NUM 4 ///< ESP8266 GPIO 数 #define KEY_2_IO_FUNC FUNC_GPIO4 ///< ESP8266 GPIO 名称 #define KEY_3_IO_MUX PERIPHS_IO_MUX_GPIO5_U ///< ESP8266 GPIO 功能 #define KEY_3_IO_NUM 5 ///< ESP8266 GPIO 数 #define KEY_3_IO_FUNC FUNC_GPIO5 ///< ESP8266 GPIO 名称 LOCAL key_typedef_t * singleKey[GPIO_KEY_NUM]; ///< 定义单个按键成员数组指针 LOCAL keys_typedef_t keys; ///< 定义总体按键模块结构指针。 /**@} */ /*key1按键短按处理*/ LOCAL void ICACHE_FLASH_ATTR key1ShortPress(void) { STA[1]=!STA[1]; } /*key1按键长按处理*/ LOCAL void ICACHE_FLASH_ATTR key1LongPress(void) { gizwitsSetMode(WIFI_SOFTAP_MODE); //gizwitsSetMode(WIFI_AIRlink_MODE); } /*key2按键短按处理*/ LOCAL void ICACHE_FLASH_ATTR key2ShortPress(void) { STA[2]=!STA[2]; } /* key2按键长按处理*/ LOCAL void ICACHE_FLASH_ATTR key2LongPress(void) { gizwitsSetMode(WIFI_SOFTAP_MODE); } /*key3按键短按处理*/ LOCAL void ICACHE_FLASH_ATTR key3ShortPress(void) { STA[3]=!STA[3]; } /*key3按键长按处理*/ LOCAL void ICACHE_FLASH_ATTR key3LongPress(void) { gizwitsSetMode(WIFI_SOFTAP_MODE); } //key4按键短按处理* LOCAL void ICACHE_FLASH_ATTR key4ShortPress(void) { STA[4]=!STA[4]; } //key4按键长按处理* LOCAL void ICACHE_FLASH_ATTR key4LongPress(void) { gizwitsSetMode(WIFI_SOFTAP_MODE); } /** * 按键初始化 * @参数 无 * @返回 无 */ LOCAL void ICACHE_FLASH_ATTR keyInit(void) { singleKey[0] = keyInitOne(KEY_0_IO_NUM KEY_0_IO_MUX KEY_0_IO_FUNC key1LongPress key1ShortPress); singleKey[1] = keyInitOne(KEY_1_IO_NUM KEY_1_IO_MUX KEY_1_IO_FUNC key2LongPress key2ShortPress); singleKey[2] = keyInitOne(KEY_2_IO_NUM KEY_2_IO_MUX KEY_2_IO_FUNC key3LongPress key3ShortPress); singleKey[3] = keyInitOne(KEY_3_IO_NUM KEY_3_IO_MUX KEY_3_IO_FUNC key4LongPress key4ShortPress); keys.singleKey = singleKey; keyParaInit(&keys); PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U FUNC_GPIO12);//开关1 PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U FUNC_GPIO13);//开关2 PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U FUNC_GPIO14);//开关3 PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U FUNC_GPIO15);//开关4 } /** * @brief user_rf_cal_sector_set * 在Flash中使用第636扇区的(2544k ~ 2548k)存储rf_cal参数 * @参数 无 * @返回 无 */ uint32_t ICACHE_FLASH_ATTR user_rf_cal_sector_set() { return 636; } /** * @brief 程序的入口函数 * 在函数中完成与用户相关的初始化 * @参数 无 * @返回 无 */ void ICACHE_FLASH_ATTR user_init(void) { uint32_t system_free_size = 0; wifi_station_set_auto_connect(1); wifi_set_sleep_type(NONE_SLEEP_T);//设置无休眠模式 espconn_tcp_set_max_con(10); uart_init_3(9600115200); UART_SetPrintPort(1); GIZWITS_LOG( "---------------SDK version:%s--------------\n" system_get_sdk_version()); GIZWITS_LOG( "system_get_free_heap_size=%d\n"system_get_free_heap_size()); struct rst_info *rtc_info = system_get_rst_info(); GIZWITS_LOG( "reset reason: %x\n" rtc_info->reason); if (rtc_info->reason == REASON_WDT_RST || rtc_info->reason == REASON_EXCEPTION_RST || rtc_info->reason == REASON_SOFT_WDT_RST) { if (rtc_info->reason == REASON_EXCEPTION_RST) { GIZWITS_LOG("Fatal exception (%d):\n" rtc_info->exccause); } GIZWITS_LOG( "epc1=0x%08x epc2=0x%08x epc3=0x%08x excvaddr=0x%08x depc=0x%08x\n" rtc_info->epc1 rtc_info->epc2 rtc_info->epc3 rtc_info->excvaddr rtc_info->depc); } if (system_upgrade_userbin_check() == UPGRADE_FW_BIN1) { GIZWITS_LOG( "---UPGRADE_FW_BIN1---\n"); } else if (system_upgrade_userbin_check() == UPGRADE_FW_BIN2) { GIZWITS_LOG( "---UPGRADE_FW_BIN2---\n"); } keyInit(); userInit(); gizwitsInit(); //使用定时 os_timer_disarm(&userTimer); os_timer_setfn(&userTimer (os_timer_func_t *)userHandle NULL); os_timer_arm(&userTimer USER_TIME_MS 1); //定时获取网络时间以及处理函数 os_timer_disarm(&ntpTimer1000ms); os_timer_setfn(&ntpTimer1000ms (os_timer_func_t *)getntpTimerFunc NULL); os_timer_arm(&ntpTimer1000ms NTP_TIME_1000MS 1); GIZWITS_LOG("--- system_free_size=%d ---\n" system_get_free_heap_size()); }