Browse Source

fix:临界保护时,us延时不可以用休眠方式

alienwalker 3 năm trước cách đây
mục cha
commit
8ffe9d54da
2 tập tin đã thay đổi với 7 bổ sung2 xóa
  1. 1 1
      application/src/luat_base_air105.c
  2. 6 1
      application/src/luat_timer_air105.c

+ 1 - 1
application/src/luat_base_air105.c

@@ -331,7 +331,7 @@ time_t luat_time(time_t *_Time) {
 
 
 static uint32_t cri;
-static uint8_t cri_flag;
+uint8_t cri_flag;
 static uint8_t disable_all;	//如果设置成1,将关闭总中断,非常危险,谨慎使用
 
 void luat_os_set_cri_all(uint8_t onoff)

+ 6 - 1
application/src/luat_timer_air105.c

@@ -130,7 +130,12 @@ int luat_timer_mdelay(size_t ms) {
     return 0;
 }
 
-
+extern uint8_t cri_flag;
 void luat_timer_us_delay(size_t time){
+	if (cri_flag)
+	{
+		SysTickDelay(time * SYS_TIMER_1US);
+		return;
+	}
 	Task_DelayUS(time);
 }