From ae079c1fc5d990ba55714d4b3a51b19f96edaec4 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 24 四月 2025 16:01:43 +0800
Subject: [PATCH] 改为中断来低电平触发发送当前扫描数据,3s内扫描不到的会退出,串口来55 AA 75 70 64 61 74 65,进入升级模式

---
 01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c |   28 ++++++++++++++++++++++------
 1 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c b/01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c
index 0d934bf..d8b216b 100644
--- a/01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c
+++ b/01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c
@@ -361,11 +361,11 @@
 CONFIG_RAM_CODE void UpdateTickAndSch(void)
 {
     uint32_t ulPreviousMask;
-	
-    vTaskTickSet(lp_get_curr_tmr_cnt());
 
     ulPreviousMask = portSET_INTERRUPT_MASK_FROM_ISR();
     {
+        vTaskTickSet(lp_get_curr_tmr_cnt());
+
         /* Increment the RTOS tick. */
         if( xTaskIncrementTick() != pdFALSE )
         {
@@ -379,19 +379,21 @@
 
 CONFIG_RAM_CODE void xPortSysTickHandler( void )
 {
-	  #if ( configUSE_TICKLESS_IDLE == 1 )
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_OS_TICK_IRQ, 1);
+
+    #if ( configUSE_TICKLESS_IDLE == 1 )
         UpdateTickAndSch();
         
         if(portNVIC_SYSTICK_LOAD_REG != (ulTimerCountsForOneTick - 1UL))
         {
             portNVIC_SYSTICK_CTRL_REG = 0UL;
             portNVIC_SYSTICK_CURRENT_VALUE_REG = 0UL;
-				
+
             /* Configure SysTick to interrupt at the requested rate. */
             portNVIC_SYSTICK_LOAD_REG = ulTimerCountsForOneTick - 1UL;
             portNVIC_SYSTICK_CTRL_REG = ( portNVIC_SYSTICK_CLK_BIT_CONFIG | portNVIC_SYSTICK_INT_BIT | portNVIC_SYSTICK_ENABLE_BIT );
         }
-		#else
+    #else
         uint32_t ulPreviousMask;
 
         ulPreviousMask = portSET_INTERRUPT_MASK_FROM_ISR();
@@ -404,7 +406,9 @@
             }
         }
         portCLEAR_INTERRUPT_MASK_FROM_ISR( ulPreviousMask );
-		#endif
+    #endif
+
+    PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_OS_TICK_IRQ, 0);
 }
 /*-----------------------------------------------------------*/
 
@@ -433,3 +437,15 @@
 
 #endif /* configOVERRIDE_DEFAULT_TICK_CONFIGURATION */
 
+/*-----------------------------------------------------------*/
+CONFIG_RAM_CODE void vPortSysTickRestart(uint32_t tick)
+{
+	/* restart systick, use configTICK_ON_WAKING_RATE_HZ */
+	portNVIC_SYSTICK_CTRL_REG = 0UL;
+	portNVIC_SYSTICK_CURRENT_VALUE_REG = 0UL;
+	
+	/* Configure SysTick to interrupt at the requested rate. */
+	portNVIC_SYSTICK_LOAD_REG = tick - 1; //ulTimerCountsForOneTick - 1UL;
+	portNVIC_SYSTICK_CTRL_REG = ( portNVIC_SYSTICK_CLK_BIT_CONFIG | portNVIC_SYSTICK_INT_BIT | portNVIC_SYSTICK_ENABLE_BIT );
+}	
+

--
Gitblit v1.9.3