소스 검색

修改led和beep初始化位置,解决其引起的崩溃问题

guohui 1 년 전
부모
커밋
4e905f1dde
4개의 변경된 파일과 21개의 추가작업 그리고 6개의 파일을 삭제
  1. 1 1
      pro/src/paras.c
  2. 0 5
      pro/ui/menu.c
  3. 19 0
      pro/ui/ui.c
  4. 1 0
      pro/ui/ui.h

+ 1 - 1
pro/src/paras.c

@@ -831,7 +831,7 @@ static int proc_misc(dictionary *dic, int op, MiscInfo_t *misc)
             r = -1; 
         }
 
-        if(misc->flip_time<=0) {
+        if(misc->flip_time<0) {
             LOGE("___ check misc, flip_time is invalid, must greater than 0\n");
             r = -1; 
         }

+ 0 - 5
pro/ui/menu.c

@@ -438,8 +438,6 @@ int menu_init(void)
     }
 
     key_init();
-    led_init();
-    beep_init();
     lcd_init(LCD_WIDTH,LCD_HEIGHT,LCD_COLOR);
     lcd_rotate(misc->rotate);
     
@@ -451,11 +449,8 @@ int menu_deinit(void)
     menu_handle_t *h=&mnHandle;
     
     timer_deinit(h->tmr);
-
     lcd_deinit();
     key_deinit();
-    led_deinit();
-    beep_deinit();
     
     return 0;
 }

+ 19 - 0
pro/ui/ui.c

@@ -1,6 +1,8 @@
 #include "ui.h"
 #include <unistd.h>
 #include <stdlib.h>
+#include "led.h"
+#include "beep.h"
 #include "menu.h"
 #include "sys.h"
 #include "thread.h"
@@ -48,6 +50,9 @@ int ui_init(void)
 {
     ui_handle_t *h=&uiHandle;
 
+    led_init();
+    beep_init();
+
 #ifdef USE_UI
     thread_start(THREAD_ID_UI, ui_thread, h);
 #endif
@@ -56,5 +61,19 @@ int ui_init(void)
 }
 
 
+int ui_deinit(void)
+{
+    ui_handle_t *h=&uiHandle;
+
+    led_deinit();
+    beep_deinit();
+#ifdef USE_UI
+    thread_stop(THREAD_ID_UI);
+#endif
+
+    return 0;
+}
+
+
 
 

+ 1 - 0
pro/ui/ui.h

@@ -2,6 +2,7 @@
 #define __UI_Hx__
 
 int ui_init(void);
+int ui_deinit(void);
 
 #endif